我有点糊涂,聚合与单向聚合的区别?关联与单向关联的区别?详细问题见里面

jobs2001 2002-03-11 09:54:08
1 如何判断那些情况是聚合,那些是单向聚合
如何判断那些情况是聚合,那些是单向聚合
2 在生成代码时,它们各有什么特点

谢谢各位!
...全文
64 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jobs2001 2002-03-13
谢谢二位
我现在明白了
回复
aileen_long 2002-03-13
在UML的概念里,没有什么单向聚合的概念。聚合是一种二元的关联关系,关联的一端是聚集(整体),另一端是组成(部分)。两端不能同时是聚集或者同时是组成。站在你的问题的角度,也就是说所有的聚合都是单向的,不存在所谓的双向聚合。
至于对聚合的理解,打一个比方,如圆和点的关系就是一种聚合关系。圆需要点,且是点的积聚。但点并不依赖于圆,且可以独立存在。但圆和圆心(一种特殊的点)的关系则不是聚合,因为圆心不能独立于圆存在,没有圆,圆心也就失去了意义,它们之间实际上是一种组合关系(一种具有更强约束的聚合)。部分能否独立存在,是聚合与组合的最重要的区别。
对应到代码上,我觉得应该是下面的形式:
class A (组成)
{
};
class B (聚集)
{
A *a;
};
回复
Mubin_Du 2002-03-11
2。
如果A与B是单向聚合:
class A{
public A();
public B theB;

...
}

如果A与B是聚合:
class A{
public A();
public B theB;

...
}
class B{
public B();
public A theA;

...
}
回复
发动态
发帖子
研发管理
创建于2007-08-27

1176

社区成员

软件工程/管理 管理版
申请成为版主
社区公告
暂无公告