接上回: 
http://www.csdn.net/develop/read_article.asp?id=11330 
在比赛时根据球员的状态来决定他的表现, 可以使用state模式。其中球队是context, 球员是state,教练是client。好处是将特定 状态相关的行为局部化,并且将不同状态的 行为分割开来;使得状态转换显示化;而且 球员可以被多个教练(client)共享。 代码如下: class 球队{ public:     球队(); private:     friend class 球员;     void 改变状态(球员*); private:      球员* _状态; }; 
class 球员{ public:      //所有操作 protected:      void 改变状态(球队*,球员*); }; 
class 球员状态不佳:public 球员{ public:     static 球员* 实例(); 
    virtual void 坐冷板凳(球队*); }; 
class 球员状态很好:public 球员{ public:     static 球员* 实例(); 
    virtual void 上场首发(球队*); };  
 
  |