接上回:
http://www.csdn.net/develop/article/11/11001.shtm
在足球战术中常常使用边锋战术,也就是Decorator模式。 主要优点是可以在不改变球队整体战术的前提下,增加 一个左边锋或者右边锋,增加进攻的威胁。缺点是有时候 并不好控制,必须要保持边前锋和全队的接口的一致性。 如果全度的打法过于繁杂,则使用边前锋的代价太高。 一定要打法简练实用的球队(如荷兰队对overmars)才可以 用此模式。对于打法繁杂的球队可以使用strategy模式。 代码如下: class 球队{ public: 球队(); virtual void 进攻(); virtual void 组织(); };
class 边锋:public 球队{ public: 边锋(球队*);
virtual void 进攻(); virtual void 组织(); private: 球队* _实例; };
void 边锋::进攻(){ _实例->进攻(); }
void 边锋::组织(){ _实例->组织(); }
class 左边锋:public 边锋{ public: 左边锋(球队*,int 左边宽度);
virtual void 进攻(); private: void 左边进攻(int); private: int _宽度; };
void 左边锋::进攻(){ 边锋::进攻(); 左边进攻(_宽度); }

|