1、本章的例子——泡茶与泡咖啡
- 泡茶、泡咖啡也许有两个类
-
他们有很多共性,可以抽象成一个模板,这样用一样的步骤,进行规范,子类可以为一个或多个步骤提供实现
模板
2、模板方法模式
模板方法类图在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
带钩子的模板模板方法可以提供钩子,这个方法可以在特定条件下才触发,或者是一个空方法,由子类考虑是否实现
3、设计原则
好莱坞原则——别调用我们,我们会调用你
-
模板方法中的好莱坞原则:高层组件控制冲泡方法,只有需要使用子类实现的方法时,才调用子类。
模板方法中的好莱坞原则
4、真实环境中的模板方法
- sort(Object[] a) 这个里面会调用compareTo,这个方法是子类可以实现的。排序的算法是顶层提供的,但具体排序谁比谁大可以由子类实现,这样的方式,也是模板方法
-
模板模式的重点在于提供一个算法,并让子类实现某些步骤。
排序中的模板
网友评论