首 页亚健康人群保健科学养生饮食保健四季保健生活保健家庭保健心理康复保健家庭医生健身保健品保健资讯

排兵布阵之interpreter篇

时间:2024-10-20  来源:  作者: 我要纠错



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

<p style=line-height: 150%><A href="http://www.csdn***/develop/read_article.asp?id=11439">http://www.csdn***/develop/read_article.asp?id=11439</A>

<p style=line-height: 150%>排兵布阵时使用interpreter模式,
可以让教练不用去hack,而是简单
的复用就可以完成复杂的战术。
在这个模式中,client是教练,
context是球队,abstractexpression
是基本打法,terminalexpression
是单个队员的打法,nonterminal
expression是一条线的打法,
好处是用类来表示打法,可以用
继承来改变或扩展打法;而且
"抽象打法树"中各节点的类的
实现大体类似,易于实现。缺点是
为每种打法定义一个类,当打法
很复杂时,很难维护。interpreter
和composite(组合进攻)在实现上
有很多相通之处,以下是需要考虑的
特殊问题:
1.抽象打法树的创建。可以使用经典
教科书上的打法,也可以由教练提供。
2.打法的实现可以采用visitor(全攻全守)
来实现。
3.当许多打法都以某个队员作为
最终完成者时,这个队员可以作为
flyweight来共享:)
代码如下:
class 基本打法{
public:
   基本打法();
   virtual ~基本打法();

<p style=line-height: 150%>   virtual bool 组织(球队&)=0;
   virtual 基本打法* 进攻(const char*,基本打法&)=0;
   virtual 基本打法* 防守(const char*,基本打法&)=0;
};

<p style=line-height: 150%>class 球队{
public:
    bool 找寻球员(const char*) const;
    void 赋给(球员打法*,bool);
};

<p style=line-height: 150%>class 左后卫打法:public 基本打法{
public:
   左后卫打法(const char*);
   virtual ~左后卫打法();

<p style=line-height: 150%>   virtual bool 组织(球队&);
   virtual 基本打法* 进攻(const char*,基本打法&);
   virtual 基本打法* 防守(const char*,基本打法&);
private:
   char* _左后卫号码;
};

<p style=line-height: 150%>class 双前锋打法:public 基本打法{
public:
    双前锋打法(基本打法*,基本打法*);
    virtual ~双前锋打法();

<p style=line-height: 150%>   virtual bool 组织(球队&);
   virtual 基本打法* 进攻(const char*,基本打法&);
   virtual 基本打法* 防守(const char*,基本打法&);
private:
   基本打法* _前锋甲;
   基本打法* _前锋乙;
};




标签:

扫一扫在手机打开当前页
无相关信息
保健知识

保健图文信息
这种“酱油”,不能叫酱油!
这种“酱油”,不能叫酱油!
羽绒服上有油渍 哪些招数最靠谱
羽绒服上有油渍 哪些招数最靠谱
冬天适合在家养的花,让寒冷冬日芬芳满屋
冬天适合在家养的花,让寒冷冬日芬芳满屋
用好“圆”,惊艳圆满你的新年之家
用好“圆”,惊艳圆满你的新年之家
浅谈高压水射流清洗与化学清洗的区别
浅谈高压水射流清洗与化学清洗的区别
省多多加油卡,亿店联盟,全国88折加油卡批发合作
省多多加油卡,亿店联盟,全国88折加油卡批发
儿童医院的快乐密码
儿童医院的快乐密码
中国首富之子组建第一白富美公会 说屌丝勿扰
中国首富之子组建第一白富美公会 说屌丝勿

关于我们 | 打赏支持 | 网站投稿 | 广告服务 | 联系我们 | 网站地图 | 免责声明 | 友情链接 |

本站信息仅供参考,以医生诊断及医疗为准。 ┊ 如有转载或引用文章涉及版权问题_请速与我们联系

Copyright © 2024 xbj.cc Inc. All Rights Reserved. 新保健 版权所有

鄂ICP备06013414号-7 公安备:42010502000117