接上回:
http://www.csdn.net/develop/read_article.asp?id=11267
足球中的进攻可以采用command模式,
前锋的位置是command,主力前锋和
替补前锋是ConcreteCommand,client
是教练,invoker是中场及后卫球员。
好处是将前锋和其他策动进攻的球员
解耦。并且前锋也可以向其他队员一样
被操纵和扩展。新增一个前锋很容易,
因为无需改变其他队员:)
代码如下:
class 前锋{
public:
virtual ~前锋();
virtual void 进攻()=0;
protected:
前锋();
};
class 主力前锋:public 前锋{
public:
主力前锋(教练*);
virtual void 进攻();
private:
教练* _教练;
};
class 替补前锋:public 前锋{
public:
替补前锋(教练*);
virtual void 进攻();
private:
教练* _教练;
};