黑马程序员_模版方法设计模式
来源:互联网 发布: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
- 黑马程序员_模版方法设计模式
- 黑马程序员:Java基础总结----模版方法设计模式
- 黑马程序员--老毕的“模版方法设计模式”
- 设计模式_模版方法模式
- 黑马程序员_设计模式
- 黑马程序员_设计模式
- 黑马程序员_设计模式
- 黑马程序员_设计模式
- 黑马程序员_设计模式
- 黑马程序员_设计模式
- 黑马程序员_Java基础[14]_模版设计模式、习题练习
- 22.黑马程序员-模版方法模式
- 黑马程序员_抽象类与模板方法设计模式
- Java设计模式_(行为型)_模版方法模式
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
- 黑马程序员--JAVA基础_03(继承、final修饰符、抽象、模版方法设计模式)
- 黑马程序员——设计模式——装饰、单例、模版方法
- 黑马程序员_单例设计模式
- Java命令行
- LeetCode172:Factorial Trailing Zeroes
- 理解为什么要使用Ioc
- linux命令
- java编程——吸血鬼数字(四位)
- 黑马程序员_模版方法设计模式
- 初级算法整理,字符串的前后换位
- ACM Digital Roots
- 架构设计师与SOA
- 小小的TODO,大大的世界!
- Linux 网络相关命令
- UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
- hdu 1003
- Foundation框架内容