设计模式-模版设计模式


模版设计模式的定义

定义一个操作中的算法的框架,而将一些步骤放到子类中,是的子类可以不改变该算法框架即可重定义该算法的某些特定步骤

简单实例: 计算程序运行时间的模版

  • 注意: 一般模版方法都会加上final关键字,不允许被重写
abstract class TimeTempalte{
    //模版方法
    public final void getMillis(){    //计算运行时间的框架
        long startTime = System.currentTimeMillis();    //记录开始时间
        code();        //程序代码
        long endTime = System.currentTimeMillis();        //记录结束时间
        System.out.println("运行时间: "+ (endTime - startTime));
    }
    public abstract void code();    //通过抽象方法交给子类具体定义需要计算的程序代码
}

优缺点

  • 优点
    1. 具体细节步骤实现定义在子类中,不会改变整体的结构
    2. 代码复用的基本技术,在数据库设计中尤为重要
    3. 存在一种反向的控制结构,通过一个父类调用其子类的操作,通过子类对父类进行扩展增加新的行为,符合”开闭原则”
  • 不足
    1. 每个不同的实现都需要定义一个子类,会导致类的个数增加,系统更加庞大

使用场景

  • 多个子类公有的方法,并且逻辑基本相同
  • 重要丶复杂的算法,可以把核心算法设计为模版方法,周边的相关细节功能则由各个子类实现
  • 重构时经常使用,把相同代码抽取到父类中

文章作者: Bryson
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bryson !
评论
 上一篇
java中锁的种类--重入锁丶自旋锁 java中锁的种类--重入锁丶自旋锁
1.重入锁 重入锁又名递归锁,当同一个线程在外层方法已经获取锁的时候,再进入内层方法时会自动获取该锁 优点: 可以一定程度避免死锁 java中的ReentrantLock与Synchronized都是重入锁 简单认知public
2018-05-20
下一篇 
设计模式-单例模式 设计模式-单例模式
单例模式的定义 单例模式: 确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例 三个要点: 该类只有一个实例 可以自动实例化 必须向整个系统提供这个实例 单例模式的实现1.饿汉式(Eager Singleton) 类被
2018-05-18
  目录