接上回:
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: 教练* _教练; };

|