模板方法模式( Template Method ),是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。
Template Method一般应用在具有以下条件的应用中:
- 具有统一的操作步骤或操作过程
- 具有不同的操作细节
- 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同
总结:在抽象类中统一操作步骤,并规定好接口;让子类实现接口。这样可以把各个具体的子类和操作步骤解耦合
#includeusing namespace std; class AbstractClass{ public: virtual void start()=0; virtual void doing()=0; virtual void end()=0; void conduct(){ start(); doing(); end(); } }; class ConcreteClass_1 : public AbstractClass{ void start(){ cout<<"ConcreteClass_1 start"< cout<<"ConcreteClass_1 doing"< cout<<"ConcreteClass_1 end"< void start(){ cout<<"ConcreteClass_2 start"< cout<<"ConcreteClass_2 doing"< cout<<"ConcreteClass_2 end"< AbstractClass * absc=new ConcreteClass_1(); absc->conduct(); delete absc; return 0; }



