设计模式之模板方法模式
Posted 鱼儿慢慢游~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之模板方法模式相关的知识,希望对你有一定的参考价值。
模板方法模式:定义操作中的算法的骨架,而将一些具体的步骤延迟到子类中去。
模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
结构图:
AbstractClass 是一个抽象类,定义并实现了一个模板方法,该方法一般给出顶级的逻辑骨架,而具体的逻辑组成则在相应的抽象
操作中。推迟到子类,完成不同的实现。
模板方法的特点:
1. 将不变的行为移至父类中,去除子类的重复代码。
2. 当遇到一系列步骤构成的过程需要执行时,这些步骤从最高层次上来看都是相同的,但是有些步骤的实现可能不同,这时可以考虑使用模板方法模式。
例子:
假设在做蛋炒饭时, 我们都是先炒蛋,在炒饭。不对,应该是先放油~
class MakeEggRice { public: void showEggRice(); virtaul void addOil(); virtual void fireEgg(); virtual void fireRice(); }; class lishifuEggRice { public: virtual void addOil() { cout << "很多油" << endl; } virtual void fireEgg() { cout << "fire 2 eggs" << endl; } ...... }
以上是关于设计模式之模板方法模式的主要内容,如果未能解决你的问题,请参考以下文章