<p style=line-height: 150%>接上回:
<p style=line-height: 150%><a href="http://www.csdn.net/develop/read_article.asp?id=11330">http://www.csdn.net/develop/read_article.asp?id=11330</a>
<p style=line-height: 150%>在比赛时根据球员的状态来决定他的表现,
可以使用state模式。其中球队是context,
球员是state,教练是client。好处是将特定
状态相关的行为局部化,并且将不同状态的
行为分割开来;使得状态转换显示化;而且
球员可以被多个教练(client)共享。
代码如下:
class 球队{
public:
球队();
private:
friend class 球员;
void 改变状态(球员*);
private:
球员* _状态;
};
<p style=line-height: 150%>class 球员{
public:
//所有操作
protected:
void 改变状态(球队*,球员*);
};
<p style=line-height: 150%>class 球员状态不佳:public 球员{
public:
static 球员* 实例();
<p style=line-height: 150%> virtual void 坐冷板凳(球队*);
};
<p style=line-height: 150%>class 球员状态很好:public 球员{
public:
static 球员* 实例();
<p style=line-height: 150%> virtual void 上场首发(球队*);
};
相关阅读:
全‘心’康复,全新旅程
足球战术之strategy篇
足球战术之flyweight篇
足球战术->多点进攻之Abstract Factory篇
足球战术->组合进攻之composite篇