Java设计模式之模板方法模式或者说模板设计模式(属于行为型)
2015-05-02 17:03
399 查看
抽象类,不变的代码写了,要变化的部分留给子类去实现:
For循环求运行时间类:
IO流读取视频,求其运行时间的类:
测试类:
package 行为型_模板方法模式; //模板设计模式的意思是把不变定位部分写出来,变化的部分留给子类去实现 public abstract class GetTime { public long getTime() throws Exception{ long start = System.currentTimeMillis();//开始时间 /* //for循环 for(int i=0;i<10000;i++){ System.out.println(i); }*/ /* //视频 /设计模式/src/avi/a.avi BufferedInputStream input= new BufferedInputStream(new FileInputStream("/设计模式/src/avi/a.avi")); BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream("b.avi")); byte[] b = new byte[1024]; int len=0; while((len=input.read(b))!=-1){ output.write(b,0,len); } output.close(); input.close(); //再給我测试一个代码:集合操作的多线程操作,常用API,那么你也还要写代码吗,麻烦!!!!!!!!!!!!!!!! */ code();//子类去写 long end = System.currentTimeMillis();//结束时间 return end-start; } //写一个抽象的方法,子类自己去实现方法的具体操作(内容) public abstract void code();//留给子类实现 }
For循环求运行时间类:
package 行为型_模板方法模式; public class ForGetTime extends GetTime{ @Override public void code() { for(int i=0;i<10000;i++){ System.out.println(i); } } }
IO流读取视频,求其运行时间的类:
package 行为型_模板方法模式; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class IOGetTime extends GetTime{ @Override public void code(){ try { BufferedInputStream input = new BufferedInputStream(new FileInputStream("avi/a.avi")); BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream("b.avi")); byte[] b = new byte[1024]; int len=0; while((len=input.read(b))!=-1){ output.write(b,0,len); } output.close(); input.close(); } catch (IOException e) { e.printStackTrace(); } } }
测试类:
package 行为型_模板方法模式; public class GetTimeMain { public static void main(String[] args) throws Exception { // GetTime gTime = new GetTime(); // System.out.println(gTime.getTime()+"毫秒"); //面向抽象编程 GetTime gt = new ForGetTime(); System.out.println(gt.getTime()+"毫秒"); //重新赋值为读取的是IO流.avi gt = new IOGetTime(); System.out.println(gt.getTime()+"毫秒"); } }
相关文章推荐
- java设计模式(行为型)之模板方法模式
- JAVA设计模式(17):行为型-模板方法模式(Template Method)
- java设计模式--行为型模式--模板方法
- Java设计模式_行为型_模板方法模式_论房地产开发
- 【行为型模式】模板方法模式(template method)之23种java设计模式
- JAVA设计模式(17):行为型-模板方法模式(Template Method)
- Java设计模式(行为型)之-模板方法模式
- Java设计模式(14)行为型:模板方法模式
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 模板方法模式(Template Method) - Java实现
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)
- 设计模式_模板方法模式(Java)
- java设计模式学习之模板方法模式
- 设计模式深入学习--Template Method模板方法模式(行为型模式)
- Java设计模式之——模板方法模式(Template)
- 设计模式之模板方法模式(java)
- 【design pattern】行为型模式之—模板方法设计模式(Template method)
- 【设计模式】—-(13)模板方法模式(行为型)
- java设计模式之模板方法模式
- 【java设计模式】之 模板方法(Template Method)模式
- Java设计模式之行为型模式(模板模式)