设计模式之模板模式

Posted suyang-java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之模板模式相关的知识,希望对你有一定的参考价值。

    今天我要向大家介绍的设计模式叫做模板模式。模板模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤(摘自菜鸟教程)。模板模式在开发中使用的非常的频繁并且在spring中大量的使用了模板模式。

    1.定义一个抽象模板类:

//制作饮品
public abstract class MakeDrink {
    private void boilWater(){
        System.out.println("烧水");
    }
    protected abstract void machining(); //加工
    protected void encapsulation(){
        System.out.println("把做好的饮品倒进杯里");
    }
    
    //防止子类重写
    public final void getDrink(){
        boilWater();
        machining();
        encapsulation();
    }
    
}

2.定义具体的饮品类:

public class TeaDrink extends MakeDrink{

    @Override
    protected void machining() {
        System.out.println("加入茶叶");
    }

}

public class OffeeDrink  extends MakeDrink{

    @Override
    protected void machining() {
        System.out.println("加入咖啡豆");
    }

}

3.客户端调用:

public static void main(String[] args) {
        MakeDrink offeedrink = new OffeeDrink();
        offeedrink.getDrink();
        System.out.println("===========");
        MakeDrink teadrink = new TeaDrink();
        teadrink.getDrink();
    }



执行结果:
烧水
加入咖啡豆
把做好的饮品倒进杯里
===========
烧水
加入茶叶
把做好的饮品倒进杯里

使用模板模式可以实现代码的复用,但是每个不同的实现都需要一个子类会导致类的数量增加并且继承也使代码耦合在了一起。

以上是关于设计模式之模板模式的主要内容,如果未能解决你的问题,请参考以下文章

python设计模式之模板模式

设计模式之模板方法模式实战解析

行为型设计模式之模板方法模式

设计模式之模板方法模式(Template Method)详解及代码示例

GOF23设计模式之模板方法模式(template method)

java 之 模板模式(大话设计模式)