java 28 - 2 设计模式之 模版设计模式
模版设计模式
模版设计模式概述
模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现
优点
使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求
缺点
如果算法骨架有修改的话,则需要修改抽象类
例子:
如果我想知道一个程序运行所花费的时间,那么为了程序更符合面向对象思想设计原则。
就应该把 “运行的程序”、“时间的计算”、“启动这两个类” 分开成3个类来做。
其中“事件的计算”就是个模版设计,定义一个算法的骨架,将具体的算法延迟到子类中来实现。里面是抽象类和抽象方法
而“运行的程序”则是继承了“事件的计算”,重写它的抽象方法。
代码:
“时间的计算”
1 /* 2 这是个计算程序运行事件的算法骨架 3 */ 4 5 //有抽象方法,必须抽象类 6 public abstract class GetTime { 7 8 public long getTime() { 9 10 // 获取启动时的时间 11 long starttime = System.currentTimeMillis(); 12 13 // 调用抽象方法 14 code(); 15 16 // 获取结束时间 17 long endtime = System.currentTimeMillis(); 18 19 // 返回运行所花时间 20 return endtime - starttime; 21 22 } 23 24 // 抽象方法 25 public abstract void code(); 26 27 }
“运行的程序”
1 public class ForDemo extends GetTime { 2 3 public void code() { 4 5 for (int x = 0; x < 10000; x++) { 6 System.out.println(x); 7 } 8 9 } 10 11 }
“启动两个类”
1 public class GetTimeDemo { 2 3 public static void main(String[] args) { 4 5 // 创建GetTime抽象类的对象,需要这个类的具体实现类 6 GetTime g = new ForDemo(); 7 8 System.out.println("花费时间:" + g.getTime() + "毫秒"); 9 10 } 11 12 }
何事都只需坚持..
难?
维熟尔。
LZL的自学历程...只需坚持