Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
足球战术->组合进攻之composite篇

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

接上回:

http://www.csdn.net/develop/read_article.asp?id=11120

最有效的进攻方法是几个球员组合成composite来进攻,
这个composite又可以和其他球员和composite组合成
新的composite,如此递归...Composite模式简化了
教练(client)的指挥,因为他不用考虑某个进攻模块
是单个队员还是composite,而且也容易在原战术上
加入新增加的队员或composite,但是使用起来会出现
你不希望某个进攻组合中有某个队员或组合时,你无法
限制他们,只有在比赛进行中灵活运用。
代码如下:
class 组合;

class 组件{
public:
    virtual 组合* 得到组合(){return 0;}
};

class 组合:public 组件{
public:
    void 添加(组件*);
    virtual 组合* 得到组合(){return this;}
};

class 队员:public 组件{
};

组合* a组合=new 组合;
队员* a队员=new 队员;

组件* a组件;
组合* test;

a组件=a组合;
if(test=a组件->得到组合()){
   test->添加(new 队员);
}

a组件=a队员;

if(test=a组件->得到组合()){
   test->添加(new 队员);
}

注:组件为一个组合或队员。

 




相关文章

相关软件