模板方法模式

2018/04 19 06:04

模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

泡茶和泡咖啡的流程方法是一致的,只是每个步骤的细节是特殊的,这时我们可以使用模板方法进行设计。

咖啡冲泡方法

  • 把水煮沸
  • 用沸水冲泡咖啡
  • 把咖啡倒进杯子
  • 加糖和牛奶

茶冲泡方法

  • 把水煮沸
  • 用沸水浸泡茶叶
  • 把茶倒进杯子
  • 加柠檬

咖啡和茶都是咖啡因饮料,我们创建一个咖啡因饮料父类,让咖啡和茶去继承。

对模板方法进行挂钩

钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。要不要挂钩,由子类自行决定。

好莱坞原则:

别调用我们,我们会调用你。

好莱坞原则可以给我们一种防止“依赖腐败”的方法。好莱坞原则下,我们允许底层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎么使用这些底层组件。换句话说,高层组件对地城组件的方式是“别调用我们,我们回调用你”。

 

--转载请注明: https://www.guangboyuan.cn/%e6%a8%a1%e6%9d%bf%e6%96%b9%e6%b3%95%e6%a8%a1%e5%bc%8f/

发表回复

(必填)