设计模式 C++版:第二十三式 模板方法
来源:互联网 发布:达芬奇 去闪烁 mac 编辑:程序博客网 时间:2024/06/14 10:15
定义一个操作中的算法骨架,而将一些步骤延迟到子类中。用一句听得懂的话说,就是把一个算法中不变的部分搬移到超类——父类中,把变的部分留给子类,通过接口重写的方式完成各自变化的部分。好处是,减少了代码的耦合,提高了复用。
简单代码如下:
class Father_Class{public:void template_method(){/**不变部分**///可变部分 method1(); method2(); /* *不变部分 * */};//可变部分virtual void method1() = 0;virtual void method2() = 0;};class Sub1:public Father_Class{public:virtual void method1(){ cout << "sub1 method1" << endl; };virtual void method2(){ cout << "sub1 method2" << endl; };};class Sub2 :public Father_Class{public:virtual void method1(){ cout << "sub2 method1" << endl; };virtual void method2(){ cout << "sub2 method2" << endl; };};int main(){Father_Class * fc = new Sub1;fc->template_method();delete fc;fc = new Sub2;fc->template_method();delete fc;fc = nullptr;return 0;}
阅读全文
0 0
- 设计模式 C++版:第二十三式 模板方法
- 设计模式_模板方法模式(C++)
- 第二十三篇 设计模式--策略模式模式
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 设计模式之模板方法模式(C++)
- 设计模式——模板方法模式(C++)
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 【设计模式】模板方法
- 模板方法设计模式
- 设计模式--模板方法
- 模板方法设计模式
- 设计模式-模板方法
- 设计模式-模板方法
- 模板方法设计模式
- 模板方法设计模式
- Java/Web调用Hadoop进行MapReduce
- 异或运算例题
- 剑指offer之二十一---复杂链表的复制
- [MIPS汇编语言]对于数的输入和输出
- redis追加持久化-aof(append only file)
- 设计模式 C++版:第二十三式 模板方法
- 成长之路20171013
- 231. Power of Two
- 无限级分类在edit方法下,实现上级栏目选中
- C#操作Aforge摄像头 实现拍照、录像功能
- Set集合
- Spark On YARN 集群安装部署
- jquery学习记录1
- 设计模式