模板方法设计模式
来源:互联网 发布:丹麦语 知乎 编辑:程序博客网 时间:2024/05/13 10:31
含义
定义一个算法的骨架,而将算法一些步骤的具体实现延迟到子类中
核心
通过继承实现代码复用的技术
优点
使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求
缺点
如果算法骨架有修改的话,则需要修改抽象类
代码基本结构
在一个抽象类中,定义一个final类型的方法,作为算法的骨架,当中实现方式不确定的步骤抽象成对应的抽象方法,由子类继承实现。子类继承父类,实现抽象方法。
abstract class 类名 { // 算法的骨架 public final 返回类型 方法名(){ step1(); ... step5(); } // 不确定的步骤 public abstract 返回类型 step1(); public abstract 返回类型 step5();}
举例
- 实现程序耗时统计功能
public class TemplateDemo { public static void main(String[] args) { Demo d = new Demo(); System.out.println(d.getTime()); }}abstract class GetTime { public final long getTime() { long start = System.currentTimeMillis(); code(); long end = System.currentTimeMillis(); return end - start; } public abstract void code();}class Demo extends GetTime { @Override public void code() { int i = 0; while(i < 100000) { System.out.println("x"); i++; } }}
参考文章
模板方法模式深度解析
0 0
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 【设计模式】模板方法
- 模板方法设计模式
- 设计模式--模板方法
- 模板方法设计模式
- 设计模式-模板方法
- 设计模式-模板方法
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 设计模式-模板方法
- 模板方法设计模式
- 数据库优化-水平拆分 垂直拆分
- HDFS的shell操作
- PLCameraStreamingSession 推流那些事(一)
- MQTT 3.1协议非严肃反思录
- 线程池源码解析
- 模板方法设计模式
- MSP430升级程序
- not existes 、existes、 in 与not in
- 运维开发标准化文档的四项基本原则
- 支持向量机通俗导论(理解SVM的三层境界)
- 欢迎使用CSDN-markdown编辑器
- Mybatis--使用xml进行增删改查
- Arduino控制步进电机和舵机机器臂
- MQTT 3.1.1,值得升级的6个新特性