state模式

state模式

主要是用来处理状态改变的.
先看一下代码:
class  Context;
class  state
{
 
public:
   state();
   
virtual ~state();
   virtaul   
void ShowState();
}
;
class  childA: public  state
{
  
public:
    childA();
    
~childA();
    
void ShowState();
    
void changeState(Context *pCtxt;)
        
{pCtxt->changeState(new childB());}
}
;
class  childB: public  state
{
  
public:
    childB();
    
~childB();
    
void ShowState();
    
void changeState(Context *pCtxt)
        
{pCtxt->changeState(new childA());}

}
;
class  Context
{
  
public:
       Context(state *);
       void setState(state *);
    
void showState();
    
void changeState(state *);
  
private:
    friend 
class state;
    state 
*_state;
   
}
;

你可能感兴趣的:(state模式)