文章目录
上篇介绍了面向对象设计的原则和目标之后,本篇将会介绍非常经典,并且具有示范效应的模式-模板方法Template Method。Template Method模式是一种
非常基础性
的设计模式,在面向对象系统中有着大量的应用。它用
最简洁的机制(虚函数的多态性)
为很多应用程序框架提供了灵活的
扩展点(继承+多态)
,是代码复用方面的基本实现结构。(
只要写过面向对象的应用程序,一定用过Template Method,只是可能没有写过核心流程)
1. 设计模式分类
1.1 GOF-23 模式分类
首先看一下,在《设计模式:可复用面向对象软件的基础》中对23种设计模式整体有如下分类方法:
- 从目的来看:
- 创建型( Creational) 模式: 将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象
创建时
具体类型实现引来的冲击。 - 结构型( Structural) 模式: 通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。
- 行为型( Behavioral) 模式 : 通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击。
- 创建型( Creational) 模式: 将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象
- 从范围(实现手段)来看
- 类模式