文章目录
上篇介绍了面向对象设计的原则和目标之后,本篇将会介绍非常经典,并且具有示范效应的模式-模板方法Template Method。Template Method模式是一种
非常基础性的设计模式,在面向对象系统中有着大量的应用。它用
最简洁的机制(虚函数的多态性)为很多应用程序框架提供了灵活的
扩展点(继承+多态),是代码复用方面的基本实现结构。(
只要写过面向对象的应用程序,一定用过Template Method,只是可能没有写过核心流程)
1. 设计模式分类
1.1 GOF-23 模式分类
首先看一下,在《设计模式:可复用面向对象软件的基础》中对23种设计模式整体有如下分类方法:
- 从目的来看:
- 创建型( Creational) 模式: 将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象
创建时具体类型实现引来的冲击。 - 结构型( Structural) 模式: 通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。
- 行为型( Behavioral) 模式 : 通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击。
- 创建型( Creational) 模式: 将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象
本文深入探讨了C++中的Template Method设计模式,介绍了从组件协作角度分类的模式,强调了重构到模式的重要性。文章详细阐述了模板方法模式的动机、应用场景、早绑定与晚绑定的概念,以及其在软件设计中的结构和关键要点,帮助开发者更好地理解和应用该模式。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



