足球戰(zhàn)術(shù)->邊鋒之Decorator篇
時(shí)間:2024-10-20 來(lái)源: 作者: 我要糾錯(cuò)
<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%>在足球戰(zhàn)術(shù)中常常使用邊鋒戰(zhàn)術(shù),也就是Decorator模式。
主要優(yōu)點(diǎn)是可以在不改變球隊(duì)整體戰(zhàn)術(shù)的前提下,增加
一個(gè)左邊鋒或者右邊鋒,增加進(jìn)攻的威脅。缺點(diǎn)是有時(shí)候
并不好控制,必須要保持邊前鋒和全隊(duì)的接口的一致性。
如果全度的打法過(guò)于繁雜,則使用邊前鋒的代價(jià)太高。
一定要打法簡(jiǎn)練實(shí)用的球隊(duì)(如荷蘭隊(duì)對(duì)overmars)才可以
用此模式。對(duì)于打法繁雜的球隊(duì)可以使用strategy模式。
代碼如下:
class 球隊(duì){
public:
球隊(duì)();
virtual void 進(jìn)攻();
virtual void 組織();
}; <p style=line-height: 150%>class 邊鋒:public 球隊(duì){
public:
邊鋒(球隊(duì)*); <p style=line-height: 150%> virtual void 進(jìn)攻();
virtual void 組織();
private:
球隊(duì)* _實(shí)例;
}; <p style=line-height: 150%>void 邊鋒::進(jìn)攻(){
_實(shí)例->進(jìn)攻();
} <p style=line-height: 150%>void 邊鋒::組織(){
_實(shí)例->組織();
} <p style=line-height: 150%>class 左邊鋒:public 邊鋒{
public:
左邊鋒(球隊(duì)*,int 左邊寬度); <p style=line-height: 150%> virtual void 進(jìn)攻();
private:
void 左邊進(jìn)攻(int);
private:
int _寬度;
}; <p style=line-height: 150%>void 左邊鋒::進(jìn)攻(){
邊鋒::進(jìn)攻();
左邊進(jìn)攻(_寬度);
}
標(biāo)簽: