模板模式

1.定义#

定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板模式仅仅使用了继承机制,将共性的部分提取到父类中实现,子类只实现有差别的部分。

2.类图#

类图

3.实现#

3.1抽象模板类##

public abstract class AbstractClass(){
  protected abstract void doSomething();
  protected abstract void doAnything();
  public void templateMethod(){
    //调用子类实现的方法
    this.doAnything();
    this.doSomething();
  }
}

3.2具体模板类##

pbulic class ConcreteClass1 extends AbstractClass{
  protected void doAnything(){
    //业务逻辑
  }
  protected void doSomething(){
    //业务逻辑
  }
}

4.应用#

1.多个子类有公有的方法,并且逻辑基本相同。
2.重要、复杂的算法,可以把核心算法设计为模板方法。
3.重构时,把相同的代码抽取到父类中,然后通过钩子函数约束其行为。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容