模板设计模式
模板的价值就在于骨架的定义,骨架内部将问题处理的流程已经定义好,通用的处理逻辑一般由父类实现,个性化的处理逻辑由子类实现。
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
*/
}
}