“组件协作”模式
现代软件专业分工之后的第一个结果是“框架和应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。
✏️ Template Method(模板方法模式)
动机
在软件构建过程中,我们需要为某些对象建立一种“通知依赖关 系” ——一个对象(目标对象)的状态发生改变,所有的依赖对 象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密, 将使软件不能很好地抵御变化。
使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定 的依赖关系。从而实现软件体系结构的松耦合。
定义
定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟 (变化)到子类中。 Template Method使得子类可以不改变 (复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。 ——《设计模式》
结构图
代码
总结
Template Method模式是一种非常基础性的设计模式,在面向对 象系统中有着大量的应用。它用最简洁的机制(虚函数的多态性) 为很多应用程序框架提供了灵活的扩展点,是代码复用方面的基本 实现结构。
除了可以灵活应对子步骤的变化外,“不要调用我,让我来调用 你”的反向控制结构是Template Method的典型应用。
在具体实现方面,被Template Method调用的虚方法可以具有实 现,也可以没有任何实现(抽象方法、纯虚方法),但一般推荐将 它们设置为protected方法。
✏️ Strategy(策略模式)
✏️ Observer(观察者模式)
Last updated