足球戰術->中場發動機之mediator篇
時間:2024-10-20 來源: 作者: 我要糾錯
<p style=line-height: 150%>接上回:
<A >http://www.csdn***/develop/read_article.asp?id=10848</A><p style=line-height: 150%>上次忘了最古老的足球戰術->中場發動機戰術,也就是mediator模式,
在這個模式中,所有的中場組織都由中場發動機(mediator)來完成。
對其他隊員(colleague)的要求降低,而對中場發動機的要求大大提高。
傳球方式分兩種,第一種由普通的observer模式得來:將中場發動機
作為observer,其他隊員作為subject,由中場發動機將其他隊員的傳球
再傳給其他人;第二種由其他隊員把自己作為參數傳給中場發動機,
跑動后中場發動機再把球傳給他,做踢墻式二過一。代碼如下:
class 中場發動機{
public:
virtual ~中場發動機();<p style=line-height: 150%> virtual void 中轉();
virtual void 其他隊員的傳遞(其他隊員*)=0;<p style=line-height: 150%>protected
中場發動機();
virtual void 帶球,尋找可傳球人()=0;
};<p style=line-height: 150%>class 其他隊員{
public:
其他隊員(中場發動機*);
virtual void 進攻變化();<p style=line-height: 150%> virtual void 傳球(傳球事件& 事件);<p style=line-height: 150%>private:
中場發動機* _發動機;
};<p style=line-height: 150%>void 其他隊員::進攻變化(){
_發動機->其他隊員的傳遞(this);
}
標簽: