美文网首页
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