デザインモードは一日に一度練習します.テンプレート方法(Template Method)


Template Methodモードは、動作中のアルゴリズムの骨格を定義し、いくつかのステップをサブクラス忠に遅延する.サブクラスがアルゴリズムの構造を変えずに、アルゴリズムの特定のステップを再定義することができるようにする.
class AbstractClass 
{
    public:
        AbstractClass();
        virtual ~AbstractClass();
        void TemplateMethod(); 
        
    protected:
        virtual void PrimitiveOperation1();
        virtual void PrimitiveOperation2();
};

void AbstractClass::TemplateMethod() {
    PrimitiveOperation1();
    PrimitiveOperation2();
}

class ConcreateClass: public AbstractClass {
    public:
        ConcreateClass(){} 
        virtual ~ConcreateClass();
        
    protected:
        virtual void PrimitiveOperation1();
        virtual void PrimitiveOperation2();
};

void Test() {
    AbstractClass* obj = new ConcreateClass();
    obj->TemplateMethod();
    delete obj;
}
    PS.私のデザインモデルシリーズのブログ、デザインモードのコラムは、シンプルなサンプルを通してデザインモデルをデモンストレーションしています.初心者には入門が分かりやすいです.深く勉強してGoFの「デザインモード」を見てください.