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

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

谢谢各位!
...全文
771 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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;

...
}

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧