1. 程式人生 > >Design Patterns 22: Template Method

Design Patterns 22: Template Method

定義演算法的結構,將具體步驟推遲到派生類。

struct AbstractClass
{
    void TemplateMethod()
    {
        PrimitiveOperationA();
        PrimitiveOperationB();
    }

protected:
    virtual void PrimitiveOperationA() = 0;
    virtual void PrimitiveOperationB() = 0;
};

struct ConcreteClass : AbstractClass
{
protected:
    void PrimitiveOperationA() override {}
    void PrimitiveOperationB() override {}
};

int main()
{
    ConcreteClass concrete;
    concrete.TemplateMethod();
}