核心:寻找变化点,应对变化,提高复用
方法:一般通过重构获得设计模式
重构的关键技法:静态->动态、早绑定->晚绑定、继承->组合、编译时依赖->运行时依赖、紧耦合->松耦合
1、模板方法(TemplateMethod)
定义一个操作种算法的骨架/主流程(稳定),而将一些步骤(变化)延迟到子类中。模板方法使得子类可以不改变(复用)一个算法的结构,即重写该算法的某些特定步骤。
早绑定:后写的的代码main()(不稳定)调用先写的代码/基类(稳定)来实现流程。 应用调用库/原有类。
晚绑定:先写的的代码/父类(稳定)调用后写的代码/子类(不稳定)来实现流程,调虚函数。 库/原有类调用应用。
被模板方法调用的虚方法可以有实现,也可以没有实现(纯虚方法、抽象方法)。推荐设计成 protected 方法,一般并不供外界调用。
2、