关于聚合与关联的概念

chilopod 2001-10-18 09:26:42
http://www.umlchina.com/jof/jof09/dot8.htm一文中

1.聚合关系(aggregation):如汽车含有四个轮子,便称为聚合关系,代表汽车聚合(或包含)轮子。在COM环境下,组件的聚合关系代替继承关系,可用聚合法与包含法「去聚合其他组件」,参考[1]的第五章。CORBA 3.0则正式有组件聚合关系。

2.关联关系(association):如同E-R资料模型,一个部门可有许多员工,便称做关联关系。在组件实作上,关联关系通常就是指标或参考,指向别的组件。

我觉得员工与部门也可是是聚合的关系,实在分不清两者的概念,大家发表意见!
...全文
117 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hpchen 2001-11-02
to: aileen_long(挑战2001) 
拜托, 人家问的是: what is the relationship between association and aggregation?!
  • 打赏
  • 举报
回复
aileen_long 2001-10-31
再讲得明白一点,对应到代码上,聚合和组合有什么区别呢?
假设有两个class:class A and class B,
聚合就是:
class B;
class A
{
B *b;
};

而组合则是:
include "B.h"
class A
{
B b;
};
  • 打赏
  • 举报
回复
mycode 2001-10-24
关联关系是指对象实例之间的一种在物理或概念上的关系.
聚合则是一种特殊的关联关系.汽车的例子就非常好了。

  • 打赏
  • 举报
回复
sdyqingdao 2001-10-23
员工和部门的关系是指单个员工和部门的关系,不能理解为所有员工和部门的关系(如没有员工就没有部门)
  • 打赏
  • 举报
回复
aileen_long 2001-10-23
所谓关系,就是两个元素之间的联系。在UML里定义了关联、泛化、实现等等关系。
聚合是一种特殊的关联,另外还有一种组合关系,是特殊的聚合,具有更强的约束。
打个比喻的话,聚合就相当于“多边形”和“点”的关系,即一个“多边形”是由一个个“点”聚集而成的,“多边形”不存在,但“点”依然可以独立存在。
而组合则相当于“圆”和“圆心”(一种特殊的点)的关系,“圆”一旦存在,则“圆心”就必须存在,“圆”不存在,“圆心”就不可能存在,也没有必要存在。因为你只画一个点,而不画圆,这个点也就是普通的点,而不是圆心了。我个人觉得这种关系很晦涩,容易让人钻牛角尖。
  • 打赏
  • 举报
回复
lhy 2001-10-18
聚合常指一个对象包含另一个对象,
关联指一个对象包含另一个的指针。
一部门员工数量不定,一员工也可离开部门,
所以应用关联。
  • 打赏
  • 举报
回复
相关推荐
发帖
研发管理
创建于2007-08-27

1221

社区成员

软件工程/管理 管理版
申请成为版主
帖子事件
创建了帖子
2001-10-18 09:26
社区公告
暂无公告