美文网首页
Head First 设计模式(8)模板模式

Head First 设计模式(8)模板模式

作者: kaiker | 来源:发表于2021-07-17 16:49 被阅读0次

1、本章的例子——泡茶与泡咖啡

  • 泡茶、泡咖啡也许有两个类
咖啡
  • 他们有很多共性,可以抽象成一个模板,这样用一样的步骤,进行规范,子类可以为一个或多个步骤提供实现


    模板

2、模板方法模式

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

模板方法类图

模板方法可以提供钩子,这个方法可以在特定条件下才触发,或者是一个空方法,由子类考虑是否实现

带钩子的模板

3、设计原则

好莱坞原则——别调用我们,我们会调用你

  • 模板方法中的好莱坞原则:高层组件控制冲泡方法,只有需要使用子类实现的方法时,才调用子类。


    模板方法中的好莱坞原则

4、真实环境中的模板方法

  • sort(Object[] a) 这个里面会调用compareTo,这个方法是子类可以实现的。排序的算法是顶层提供的,但具体排序谁比谁大可以由子类实现,这样的方式,也是模板方法
  • 模板模式的重点在于提供一个算法,并让子类实现某些步骤。


    排序中的模板

相关文章

网友评论

      本文标题:Head First 设计模式(8)模板模式

      本文链接:https://www.haomeiwen.com/subject/dsuwpltx.html