设计模式-模版设计模式概述和使用-抽象类
来源:互联网 发布:自己的淘宝账号查询 编辑:程序博客网 时间:2024/05/22 11:43
模版设计模式概述
模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现
优点
使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求
缺点
如果算法骨架有修改的话,则需要修改抽象类
package cn.itcast_01;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public abstract class GetTime {// 需求:请给我计算出一段代码的运行时间public long getTime() {long start = System.currentTimeMillis();// for循环// for (int x = 0; x < 10000; x++) {// System.out.println(x);// }// 复制视频// try {// BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.avi"));// BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.avi"));// byte[] bys = new byte[1024];// int len = 0;// while ((len = bis.read(bys)) != -1) {// bos.write(bys, 0, len);// }// bos.close();// bis.close();// } catch (IOException e) {// e.printStackTrace();// }// 再给我测试一个代码:集合操作的,多线程操作,常用API操作的等等...是变化的code();long end = System.currentTimeMillis();return end - start;}public abstract void code();}
package cn.itcast_01;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class IODemo extends GetTime{@Overridepublic void code() {try {BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.avi"));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.avi"));byte[] bys = new byte[1024];int len = 0;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);}bos.close();bis.close();} catch (IOException e) {e.printStackTrace();}}}
package cn.itcast_01;public class ForDemo extends GetTime {@Overridepublic void code() {for (int x = 0; x < 100000; x++) {System.out.println(x);}}}
package cn.itcast_01;public class GetTimeDemo {public static void main(String[] args) {// GetTime gt = new GetTime();// System.out.println(gt.getTime() + "毫秒");GetTime gt = new ForDemo();System.out.println(gt.getTime() + "毫秒");gt = new IODemo();System.out.println(gt.getTime() + "毫秒");}}
阅读全文
0 0
- 设计模式-模版设计模式概述和使用-抽象类
- 设计模式_模版设计模式概述和使用
- java笔记-面向对象-继承、抽象类、模版设计模式
- Java day06 模版方法设计模式 抽象类
- 设计模式--模版模式
- 设计模式--模版模式
- 设计模式--模版设计模式
- Java设计模式--模版类
- 设计模式(接口和抽象类)
- 设计模式_简单工厂模式概述和使用
- 设计模式_工厂方法模式的概述和使用)
- 设计模式_装饰模式概述和使用
- 设计模式-简单工厂模式概述和使用-接口
- 设计模式-工厂方法模式的概述和使用-接口
- 设计模式-装饰模式概述和使用-IO流
- 设计模式_Java_简单工厂模式概述和使用
- 设计模式_Java_工厂方法模式的概述和使用
- 模版方法设计模式
- java中的异常
- 元素从失去焦点到其他元素被点击期间的事件
- Laravel学习过程之Laravel安装及配置(一)
- linux系统下单网卡绑定多个IP地址
- C++解决数据精度问题,对浮点数保存指定位小数
- 设计模式-模版设计模式概述和使用-抽象类
- 应用调试之自制系统调用、编写进程查看器(二)
- typedef 的详细用法
- Spring注解@Component、@Repository、@Service、@Controller区别
- 1000瓶水和1瓶毒水还有10只老鼠
- Atom 推荐插件
- Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等
- ARKit从入门到精通(2)-ARKit工作原理及流程介绍
- 1108. Finding Average (20)