《设计模式Design Pattern》读书笔记之二十
Template Method模式
结构
目的
在父类定义一个算法的框架,而可以让改算法中的每个步骤在子类中实现。这样,子类可以随意修改算法中的某个具体步骤,但整个算法的结构没有发生改变。
讨论
1, PrimitiveOperation可以是纯虚函数;或者仅仅是一个虚拟函数,父类提供一个缺省的实现。
2, PrimitiveOperation可以是protected类型的函数,这样可以保证它们仅仅被TemplateMethod调用。
与其他模式的区别
Template methods通过继承来达到使得算法的各个部分有不同的实现;Strategies通过委托(delegation)来产生各个完整的不同的算法。
参考资料
《Design Pattern》 Gang-Of-4 1997