模板设计模式


模板设计模式

模板的价值就在于骨架的定义,骨架内部将问题处理的流程已经定义好,通用的处理逻辑一般由父类实现,个性化的处理逻辑由子类实现。
  • 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。
  • 它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

 

public abstract class CoffeeMachineTemplate {

    protected abstract void processBeans();//倒入豆子

    protected abstract void processMilk();//倒入牛奶

    protected abstract void boil();//煮沸

    public void pourToCup() {
        /**
         * pour to various cups based on the size
         */
    }

    public void serve() {
        //倒入豆子
        processBeans();
        //煮沸
        boil();
        //倒入牛奶
        processMilk();
        //将咖啡倒入杯子中
        pourToCup();
    }

}
/**
 *  浓咖啡
 *
 */
public class EspressoMachine extends CoffeeMachineTemplate {

    @Override
    protected void processBeans() {
        /**
         * Gring the beans
         */
    }

    @Override
    protected void processMilk() {
        /**
         * Use milk to create leaf art
         */
    }

    @Override
    protected void boil() {
        /**
         * Mix water and beans
         */
    }
}