现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。
“组件协作” 模式通常包含
1、模板方法模式
2、观察者模式
3、策略模式
这篇文章中我们首先来了解模板方法模式,其他两个模式在后续的文章中了解熟悉。
只要写过面向对象的程序,用过一些框架,都会使用过模板方法模式,比方QT中实现线程,那么我们一般会编写一个继承QThread的子类,然后在子类中重写run函数,这就是模板方法模式。
动机:
在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。
如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求?
这里重点标注了稳定、变化 两个词,其实在设计模式中,中心思想大部分都是围绕这稳定与变化来展开的,对于稳定的,尽量不去更改,对于有变化需求的,尽量将这些需求与稳定的部分解耦,这就是所谓的提高代码复用与扩展。
为了更好理解上述的话,这里举个例子:请客吃饭
一般我们请客吃饭,常规步骤都是: