Template Method

Template Method
基类中定义了一个算法的轮廓,算法每一步具体的实现留给了派生类。

#include  < iostream >
#include 
< list >
#include 
< algorithm >

using   namespace  std;


class  Base
{
public:
    
//算法框架
    void TemplateMethod()
    
{
        PrimitiveMethodA();
        PrimitiveMethodB();
    }

protected:
    
//交给派生类实现
    virtual void PrimitiveMethodA() = 0;
    
virtual void PrimitiveMethodB() = 0;
}
;

class  Derived:  public  Base
{
private:
    
void PrimitiveMethodA(){cout<<"Method A"<<endl;}
    
void PrimitiveMethodB(){cout<<"Method B"<<endl;}
}
;

int  main()
{
    Base
* p =new Derived;
    p
->TemplateMethod();
    delete p;
    
    
return 0;
}

你可能感兴趣的:(Template Method)