美文网首页
理解模板模式

理解模板模式

作者: 梦的飞翔_862e | 来源:发表于2018-11-28 16:08 被阅读0次
概念理解

在模板模式中,抽象类定义了做一件事情的步骤,步骤中相同的实现方式放在抽象类中,个性化的实现放在子类中。模板模式是一种行为型模式。总的来说,模板模式就是超类做流程,子类做细节。

模板模式的结构

考虑制作鲜榨果汁的例子,鲜榨果汁统一的步骤是准备水果,榨汁,过滤,包装。其中根据果汁种类的不同,准备的水果不同,榨汁,过滤,包装都是一样的,子类仅需要实现准备水果的步骤就可以了。


代码实例
public abstract class Juice {
    public final void makeJuice(){
        prepare();
        press();
        filter();
        pack();
    }
    private void press() {
        System.out.println("fruit is pressed");
    }
    private void pack() {
        System.out.println("juice is packed");
    }
    private void filter() {
        System.out.println("juice is filtered");
    }
    protected abstract void prepare();
}
public class AppleJuice extends Juice {
    @Override
    protected void prepare() {
        System.out.println("apple is prepared");
    }
}
public class OrangeJuice  extends Juice {
    @Override
    protected void prepare() {
        System.out.println("organge is prepare");
    }
}
好莱坞原则

好莱坞原则是不要打电话给我们,有事我们会打电话给你。这是高层(抽象类)和低层(具体实现类)之间的关系。高层关注的是流程,高层能调用低层,低层不能调用高层。模板模式很好的体现了这个原则。

总结

优点:模板模式封装了不变的部分,扩展了可变的部分,便于维护
注意点:为了防止被恶意覆盖,抽象类中的模板方法需要加上final关键字。

代码实例参见https://github.com/jxl198/designPattern/tree/master/template

相关文章

  • 要读的设计模式

    模板模式,装饰模式,要深刻理解

  • 理解模板模式

    概念理解 在模板模式中,抽象类定义了做一件事情的步骤,步骤中相同的实现方式放在抽象类中,个性化的实现放在子类中。模...

  • Thread 中用到的两种设计模式

    模板模式 模板模式的应用就比较好理解了。在创建线程一般使用构建 Thread 类或者实现 Runnable 接口(...

  • Android设计模式之(14)----模板模式

    模板模式 模板模式属于行为模式. 简单理解,某一套程序的流程是不改变的,但是具体的内容是可以更改的。 例如公司的财...

  • 11.8设计模式-模板模式-详解

    设计模式-模式模式 模板方法模式详解 模板方法模式在android中的实际运用 1.模板方法模式详解 2.模板方法...

  • Java设计模式之模板(template)方法模式

    转载 1.对模板方法模式的一些个人理解 模板方法模式是结构最简单的行为型模式,有时,我们完成一件事情时次序是固定...

  • 第5章 -行为型模式-模板方法模式

    一、模板方法模式的简介 二、模板方法模式的优点 三、模板方法模式的应用场景 四、模板方法模式的实例

  • 模板模式

    概念   模板模式是设计模式中较简单的一种,主要是定义一个抽象的模板类,剥离出一些需要的公共方法。  通俗点的理解...

  • 模板方法模式

    模板方法模式 模板方法模式的定义 模板方法模式(Template Method Pattern)是如此简单,以致让...

  • 设计模式系列-模板方法模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 模板方法模式 定义 模板方法模式在一个方法中定义了算法...

网友评论

      本文标题:理解模板模式

      本文链接:https://www.haomeiwen.com/subject/ccfzqqtx.html