场景引入

  小镇上新凯乐一家咖啡厅,咖啡师的逻辑:烧水 -> 冲咖啡 ->将饮品倒进杯子里 -> 加糖或者牛奶等。

后来,店家发现人们还有一部分热衷于喝茶,这时客串的咖啡师:烧水 -> 泡茶叶 ->将饮品倒进杯子里 -> 加辅料等。

我们可以清晰的发现:烧水、将饮品倒进杯子的实现是一样的,并且操作的顺序基本都是一样的。只是冲饮料、加辅料的过程需要定制化。

模板类代码实现:

abstract class Template{
    //烧水
    private void boilWater(){
        System.out.println("boil water...");
    }
    
    //倒水
    private void dumpWater(){
        System.out.println("dump water into cup...");
    }
    
    //模板方法
    //煮咖啡|茶叶等
    abstract void cook();
    //添加辅料等
    abstract void addSth();
    
    //业务流程
    public void doSth(){
        boilWater();
        cook();
        dumpWater();
        addSth();
    }
}
View Code

相关文章:

猜你喜欢
  • 2021-05-15
  • 2021-11-02
  • 2022-01-03
相关资源
相似解决方案