足球战术->组合进攻之composite篇
时间:2024-10-20 来源: 作者: 我要纠错
<p style=line-height: 150%>接上回:<p style=line-height: 150%><A href="http://www.csdn***/develop/read_article.asp?id=11120">http://www.csdn***/develop/read_article.asp?id=11120</A><p style=line-height: 150%>最有效的进攻方法是几个球员组合成composite来进攻,
这个composite又可以和其他球员和composite组合成
新的composite,如此递归...Composite模式简化了
教练(client)的指挥,因为他不用考虑某个进攻模块
是单个队员还是composite,而且也容易在原战术上
加入新增加的队员或composite,但是使用起来会出现
你不希望某个进攻组合中有某个队员或组合时,你无法
限制他们,只有在比赛进行中灵活运用。
代码如下:
class 组合;<p style=line-height: 150%>class 组件{
public:
virtual 组合* 得到组合(){return 0;}
};<p style=line-height: 150%>class 组合:public 组件{
public:
void 添加(组件*);
virtual 组合* 得到组合(){return this;}
};<p style=line-height: 150%>class 队员:public 组件{
};<p style=line-height: 150%>组合* a组合=new 组合;
队员* a队员=new 队员;<p style=line-height: 150%>组件* a组件;
组合* test;<p style=line-height: 150%>a组件=a组合;
if(test=a组件->得到组合()){
test->添加(new 队员);
}<p style=line-height: 150%>a组件=a队员;<p style=line-height: 150%>if(test=a组件->得到组合()){
test->添加(new 队员);
}<p style=line-height: 150%>注:组件为一个组合或队员。<p style=line-height: 150%>
标签: