8.模板方法模式
模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你。
在好莱坞原则之下,我们允许底层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎样使用这些底层组件。
依赖倒置原则教我们尽量避免使用具体类,而多使用抽象。而好莱坞原则使用在创建框架或组件上的一种技巧,好让底层组件能够被挂钩进计算中,而且又不会让高层组件依赖底层组件。两种的目标都是在于解耦,但是依赖倒置原则更加注重如何在设计中避免依赖。好莱坞原则教我们一个技巧,创建一个有弹性的设计,允许底层结构能够互相操作,而又防止其他类太过依赖它们。
策略模式和模板方法模式都封装算法,一个用组合,一个用继承。