足球战术->边锋之Decorator篇


<p style=line-height: 150%>接上回:

<p style=line-height: 150%><A href="http://www.csdn***/develop/article/11/11001.shtm">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 左边锋::进攻(){
   边锋::进攻();
   左边进攻(_宽度);
}




扫一扫在手机打开当前页

关注公众号

微信公众号