黑马程序员_模版方法设计模式

来源:互联网 发布:win7系统盘清理软件 编辑:程序博客网 时间:2024/05/18 23:15

------- android培训、java培训、期待与您交流! ----------

模版方法设计模式

第一部分

1、模版方法设计模式

在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类完成;

2、模版模式的好处

2.1、提高了代码的扩展性;

2.2、提高了代码的复用性;

3、模版模式应用的简单原则

3.1、抽象父类可以定义需要使用的某些方法,其余留给子类去实现;
3.2、父类提供的方法只是定义了一个通用方法,其实现必须依赖子类的辅助;

4、举例

需求:获取一段程序运行的时间;
原理:获取程序开始和结束时间并相减即可;
获取时间:System类里面有个static long currentTimeMillis()

5、模版模式的代码体现

<span style="font-size:14px;">//类也是抽象类abstract class GetTime{//为了避免被子类复写,将该方法定义成finalpublic final void getTime()//不让子类复写,{//获取开始时间long start = System.currentTimeMillis();//由于需要运行的代码是不确定的,那么单独把这边的代码封装一下//直接调用就可以了,runCode();//这个功能是不确定的功能//获取结束时间long end = System.currentTimeMillis();System.out.println("毫秒::"+(end-start));}//把这个方法单独提取出来,单独封装一个方法,方便于子类去复写,//这段代码不知道是什么,因此必然是抽象的;public abstract void runCode();}//SubTime继承了GetTime,复写父类里面的方法class SubTime extends GetTime{public void runCode(){for(int x=0;x<4000;x++){System.out.println(x);}}}class  TemplateDemo{public static void main(String[] args) {SubTime gt = new SubTime();//建立子类对象gt.getTime();//调用父类方法;}}</span><strong style="font-size:18px;"></strong>

6、运行的结果



第二部分

我的总结

1、如果父类的方法不想被子复写,那么可以在前面加上final关键字修饰;
2、父类的一部分代码要暴露(public)出去,但是父类中的方法不一定是抽象的;

0 0
原创粉丝点击