单刀赴会之prototype篇


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

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

<p style=line-height: 150%>使用prototype模式,用其他队员牵制
对手的注意力,然后带球队员通过个人
技术甩脱对方的防守,单刀赴会得分
(clone)。就像皇马在西甲半程时齐达内
进的那个球。好处是在进攻进行时决定
是否射门或改用其他方法;动态控制
射门;改用不同球员来变化射门方式;
减少进攻需要的队员数;动态换人
改变进攻来改变战术。缺点是:需要
每个队员都有单刀赴会的能力,实现
起来比较困难:)
代码如下:

<p style=line-height: 150%>class 牵制队员:public 队员{
public:
    牵制队员(中路*,左路*,右路*);

<p style=line-height: 150%>    virtual 两路* 中路包抄 const;
    virtual 右路* 左路包抄 const;
    virtual 左路* 右路包抄 const;
private:
    两路* _中路包抄原型;
    右路* _左路包抄原型;
    左路* _右路包抄原型;
};

<p style=line-height: 150%>左路* 牵制队员::右路包抄 const{
    return _右路包抄原型->左路单刀;
}

<p style=line-height: 150%>class 左路带球队员:public 带球队员{
public:
    带球队员();

<p style=line-height: 150%>    virtual void 启动();
    virtual 左路* 左路单刀 const;
private:
     /*...自己特性*/
};

<p style=line-height: 150%>左路*  左路带球队员::左路单刀() const{
     return new 左路(*this);
}




扫一扫在手机打开当前页

关注公众号

微信公众号