UML图形 X 类之间的关系 X 实现代码

聚合:“雁群”是对“大雁”的聚合[1]。

  1. class DaYan
  2. {
  3.     //......
  4. };
  5. class YanQun
  6. {
  7.     vector<DaYan> v_DaYan;
  8. public:
  9.     void fly()
  10.     {
  11.         for_each(v_DaYan.begin(),v_DaYan.end(),fly);
  12.     }
  13. };

在《大话设计模式》里面,有一个UML类图图示样例,包括了UML基本图示法,结合这幅图理解类之间的关系,在实现代码的时候,也会有参考的价值:

动物类

它依赖于氧气类、水类,所以用一个虚线实心箭头指向这两个类(----->)。

因为动物类的方法:新陈代谢(in o2,in water),是以两个类对象为参数的。我们可以将“依赖关系”理解为“A使用B作为函数参数的关系”;同样,如果在编码的时候,我们需要将B类作为A类的函数参数,那么,A对B就是依赖关系![2]

翅膀类

翅膀肯定是属于鸟的一部分;

鸟类

它继承自动物类,所以用一个实线空心箭头指向动物类;

鸟和翅膀是“合成(组合)关系”:用一个实心菱形,加上一条实线,再加上一个实心箭头,从鸟类指向翅膀类(我倒没见到组合关系的代码例子呢);

大雁类

继承自鸟类;

大雁实现接口“飞行”:用一条虚线加一个空心箭头,指向飞行接口;

雁群类

它和大雁类是聚合关系,用一个空心菱形,加上一条实线,再加上一个实心箭头,指向大雁类。本类提供“v形飞行”方法。在代码编写中,大雁类的对象,往往作为雁群类的成员[3];

企鹅类
继承自鸟类;

气候类

显然,企鹅下蛋是需要合适的气候的;企鹅类于气候类是关联关系:用一条实线加一个实心箭头,指向气候类;

 

[1]关于聚合关系以及for_each的使用方法举例:

http://www.cppblog.com/huyi/archive/2006/12/22/16736.html 

[2] 我习惯于用后一种方式思考问题,然后再画出UML图形。

[3] 对象体现聚合。

[4] 参考资料:http://www.dezai.cn/article_show.asp?ArticleID=23624 UML中类之间的关系及其Java代码例子。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值