模板方法模式
好莱坞原则:别调用我们,我们会调用你。一种防止依赖腐败的方法,当高层组件依赖底层组件,而底层组件又依赖高层组件,而高层组件又依赖侧边组件,而侧边组件又依赖底层组件的时候,依赖腐败就发生了。
好莱坞原则和依赖倒置原则的区别:依赖倒置要求尽量避免使用具体类,多使用抽象类。好莱坞原则是创建框架或组件的一种技巧,创建一种弹性设计
定义
模板方法定义了一个算法步骤,并允许子类为一个或多个步骤提供实现
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的一些步骤。
模板方法模式中默认不做事的方法称为钩子(hook)
示例
抽象父类中定义final方法,将final方法的子步骤延迟到子类中实现
第八章总结
1.模板方法定义了算法的步骤,把这些步骤的实现延迟到子类
2.模板方法的抽象类可以定义具体方法,抽象方法和钩子
3.好莱坞原则:将决策层放在高层模块中,以便决定如何以及何时调用低层模块
4.策略模式和模板方法模式都封装算法,一个用组合,一个用继承。
5.工厂方法是模板方法的一种特殊版本
模板方法:子类决定如何实现算法中的某些步骤
策略:封装可互换的行为,然后使用委托来决定要采用哪一个行为
工厂方法:由子类决定要实例化哪个具体类
OO基础
抽象、封装、多态、继承
OO原则
封装变化
多用组合、少用继承
针对接口编程、不针对实现编程
为交互对象之间的松耦合设计努力
对扩展开放,对修改关闭
依赖抽象,不依赖具体
只和亲密朋友谈话----最少知道原则
别找我,我会找你----好莱坞原则
OO模式
模板方法模式----在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。