球員狀態之state篇
時間:2024-10-20 來源: 作者: 我要糾錯
<p style=line-height: 150%>接上回:<p style=line-height: 150%><A >http://www.csdn***/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 上場首發(球隊*);
};
標簽: