写在前面:感谢GeekBand提供这样好的学习机会,让我在繁忙的工作之余可以学习巩固c++知识。以下是边学边记的一些扩展点。分享给大家。
Tip:基类的析构函数一定要写成虚的;
Tip : 设计模式必须基于稳定的部分,应对变化的部分。不存在没有一处不稳定的情况。如果全部稳定,那么就不需要用设计模式;
Tip : “扩展”的意思是虚函数继承+多态;
Tip : 类的多态继承,常用指针调用;
Template Method
这个模式适用于比较稳定的主过程(如run())。
稳定的代码写成实函数,需要变化的代码写成虚函数。
Strategy Method
用与不用,过程对比
左侧使用这个设计模式:用类的多态调用可以随意添加和删除派生类,方便管理。而且主过程不需要修改;
右侧不用这个设计模式:如果用枚举配合switch / if-else 这样结构的方法,耦合度较高,需要每次管理多个地方,容易由于疏忽导致出错。
Event Method
这个方法独立出了事件,定义了对象间的一种一对多(变化)的依赖关系,以便当一个对象(subject)的状态发生改变的时候,所有依赖于它的对象都得到通知并且自动更新。这个设计常见于UI框架中。