足球戰術->邊鋒之Decorator篇
時間:2024-10-20 來源: 作者: 我要糾錯
<p style=line-height: 150%>接上回: <p style=line-height: 150%><A >http://www.csdn***/develop/article/11/11001.shtm</A> <p style=line-height: 150%>在足球戰術中常常使用邊鋒戰術,也就是Decorator模式。
主要優點是可以在不改變球隊整體戰術的前提下,增加
一個左邊鋒或者右邊鋒,增加進攻的威脅。缺點是有時候
并不好控制,必須要保持邊前鋒和全隊的接口的一致性。
如果全度的打法過于繁雜,則使用邊前鋒的代價太高。
一定要打法簡練實用的球隊(如荷蘭隊對overmars)才可以
用此模式。對于打法繁雜的球隊可以使用strategy模式。
代碼如下:
class 球隊{
public:
球隊();
virtual void 進攻();
virtual void 組織();
}; <p style=line-height: 150%>class 邊鋒:public 球隊{
public:
邊鋒(球隊*); <p style=line-height: 150%> virtual void 進攻();
virtual void 組織();
private:
球隊* _實例;
}; <p style=line-height: 150%>void 邊鋒::進攻(){
_實例->進攻();
} <p style=line-height: 150%>void 邊鋒::組織(){
_實例->組織();
} <p style=line-height: 150%>class 左邊鋒:public 邊鋒{
public:
左邊鋒(球隊*,int 左邊寬度); <p style=line-height: 150%> virtual void 進攻();
private:
void 左邊進攻(int);
private:
int _寬度;
}; <p style=line-height: 150%>void 左邊鋒::進攻(){
邊鋒::進攻();
左邊進攻(_寬度);
}
標簽: