黑马程序员--老毕的“模版方法设计模式”
2014-03-15 11:23
281 查看
老毕在讲完抽象类之后,讲了“模版方法设计模式”,内容是这样的:
在项目开发过程中,已经明确的业务(定义属性为final)去调用不明确的业务,设计模版时,要把不明确的业务设计成抽象方法,交给其子类去复写。
老毕举了个计算程序运行时间的例子,以下是代码:
abstract class TimeTemplate {
public final void getTime()//final防止子类复写
{
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("毫秒:"+(end-start));
}
public abstract void code();//abstract提醒子类去复写
}
class TimeTemplateSon extends TimeTemplate{
public void code(){
for(int i = 0;i<10000;i++){
System.out.println("i="+i);
}
}
}
public class RunClass{
public static void main(String[] args) {
TimeTemplateSon t = new TimeTemplateSon();
t.getTime();
}
}
运行结果:
i=1
...
...
i=9999
毫秒:515
个人总结:
1,abtract关键子是为了让子类去复写父类方法,用于不明确的业务;
final关键字是为了防止子类复写,用于明确的业务。明确的业务去调用不明确的业务。
2,模版方法是一种思想,不能固化在代码上;
模版方法不一定都要抽象,因为有时需要为该类提供一种默认实现方式。
在项目开发过程中,已经明确的业务(定义属性为final)去调用不明确的业务,设计模版时,要把不明确的业务设计成抽象方法,交给其子类去复写。
老毕举了个计算程序运行时间的例子,以下是代码:
abstract class TimeTemplate {
public final void getTime()//final防止子类复写
{
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("毫秒:"+(end-start));
}
public abstract void code();//abstract提醒子类去复写
}
class TimeTemplateSon extends TimeTemplate{
public void code(){
for(int i = 0;i<10000;i++){
System.out.println("i="+i);
}
}
}
public class RunClass{
public static void main(String[] args) {
TimeTemplateSon t = new TimeTemplateSon();
t.getTime();
}
}
运行结果:
i=1
...
...
i=9999
毫秒:515
个人总结:
1,abtract关键子是为了让子类去复写父类方法,用于不明确的业务;
final关键字是为了防止子类复写,用于明确的业务。明确的业务去调用不明确的业务。
2,模版方法是一种思想,不能固化在代码上;
模版方法不一定都要抽象,因为有时需要为该类提供一种默认实现方式。
相关文章推荐
- 黑马程序员-Java_模版方法设计模式(Template Pattern)
- 黑马程序员——设计模式——装饰、单例、模版方法
- 黑马程序员:Java基础总结----模版方法设计模式
- 黑马程序员--基础加强--第三篇--单例设计模式,装饰者模式认识,专家模式,享元模式,模版方法设计模式
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
- 黑马程序员_模版方法设计模式
- 设计模式之template method模版方法模式
- 黑马程序员_静态方法,java文档制作和单例设计模式
- 设计模式——模版方法模式详解(论沉迷LOL对学生的危害)
- java设计模式八--Template Method(方法模版模式)
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- Android设计模式之模版方法模式
- 黑马程序员-------------多线程中的(线程、线程组、线程池、以及Java的设计模式)概念及方法的总结
- JS常用的设计模式(10)——模版方法模式
- 设计模式之模版方法模式
- 设计模式 模版方法模式 展现程序员的一天
- 设计模式之模版方法模试
- java设计模式-模版方法模式(Template Method)
- 23种设计模式(6):模版方法模式
- 设计模式与泡mm的关系之template method模版方法模式及再思考