模版方法模式

it2024-11-24  30

#include <iostream> using namespace std; /* 模版方法模式是将不变的行为移动到父类中,去除子类中的重复代码 定义一个操作中的算法骨架,而将一些步骤延迟实现在子类中,这种 模式使得可以在不改变算法的结构下即可重定义算法的特定步骤 */ class AbstractClass { public: virtual void PrimitiveOperation1() = 0; virtual void PrimitiveOperation2() = 0; void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); } }; class ConcreteClassA : public AbstractClass { public: void PrimitiveOperation1() { cout<<"A Primitive1"<<endl; } void PrimitiveOperation2() { cout<<"A Primitive2"<<endl; } }; class ConcreteClassB : public AbstractClass { public: void PrimitiveOperation1() { cout<<"B Primitive1"<<endl; } void PrimitiveOperation2() { cout<<"B Primitive2"<<endl; } }; int main() { AbstractClass* pClass = NULL; pClass = new ConcreteClassA(); pClass->TemplateMethod(); pClass = new ConcreteClassB(); pClass->TemplateMethod(); return 0; }

转载于:https://www.cnblogs.com/yanjiu/archive/2012/08/08/2628429.html

相关资源:数据结构—成绩单生成器
最新回复(0)