黑马程序员--老毕的“模版方法设计模式”

来源:互联网 发布:中网络电视台 编辑:程序博客网 时间:2024/05/18 22:41


 

    老毕在讲完抽象类之后,讲了“模版方法设计模式”,内容是这样的:

在项目开发过程中,已经明确的业务(定义属性为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,模版方法是一种思想,不能固化在代码上;

模版方法不一定都要抽象,因为有时需要为该类提供一种默认实现方式。

 

0 0
原创粉丝点击