Template模式.------strategy模式.

Template模式.------strategy模式.

在父类中定义方法,将具体实现放到方法中.
class  father
{
 
public:
   
void method() //方法
   {
     fun1();
     fun2();
   }

 
protected:
   
virtual void fun1()=0//细节1
   virtaul void fun2()=0//细节2
}
;
class  child: public  father
{
  
private:                //实现细节.
    void fun1()
     
{}
    
void fun2()
     
{}
}

调用代码:
 father 
* pc = new  child;
 pc
-> method();
 
缺点:代码复用性不强.
strategy模式采用的是类组合的方式实现.
class  strategy
{
 
public:
   
virtual void operation()=0;   
}
;
class  child: public  strategy
{
  
public;
     
void operation()
      
{}
}
;
class  X
{
  
public:
    
void method()
     
{p->operation();}
  
private:
     strategy 
*p;
}
;

你可能感兴趣的:(Template模式.------strategy模式.)