本文概述
- 关联
- 聚合
- 组成
- 关联vs.聚合vs.组成
- 关联
- 依赖性
- 泛化
- 实现
它由类之间的线表示, 后跟导航方向的箭头, 当箭头在两侧时, 则称为双向关联。我们可以通过在表示关联的行上添加装饰来指定关联的多重性。
例:
1)一个老师有多个学生。
文章图片
2)一个学生可以与许多老师联系。
文章图片
组成和聚集是关联的两个子集。在这两种情况下, 一个类的对象都归另一类的对象所拥有。唯一的区别是, 子项在组成上并不独立于其父项而存在, 而在聚合中, 子项不依赖于其父项, 即独立。聚合是关联的一种特殊形式, 组合是聚合的一种特殊形式。
文章图片
聚合 聚合是关联的子集, 是不同事物的集合。它代表有关系。它比关联更具体。它描述了整体或部分关系。这是一个二进制关联, 即, 它仅涉及两个类。这是一种孩子独立于父母的关系。
例如:
在这里, 我们考虑一个汽车和一个车轮的例子。没有车轮, 汽车就无法行驶。但是车轮可以与自行车, 踏板车, 自行车或任何其他车辆独立使用。车轮对象可以不存在汽车对象而存在, 这证明是一种聚集关系。
文章图片
组成 构图是聚合的一部分, 它描绘了整个部分的关系。它描述了组合(父)及其部分(子项)之间的依赖关系, 这意味着如果丢弃组合, 则其部分也会被删除。它存在于相似对象之间。
【UML关联、聚合与组合详细图解】从下面的示例中可以看到, 构图关联关系将Person类与Brain类, Heart类和Legs类联系在一起。如果该人被破坏, 大脑, 心脏和腿也将被丢弃。
文章图片
关联vs.聚合vs.组成
Association | Aggregation | Composition |
---|---|---|
关联关系用箭头表示。 | 聚集关系由一条直线表示, 一端带有一个空菱形。 | 组成关系由一端带有黑色菱形的直线表示。 |
在UML中, 它可以存在于两个或多个类之间。 | 它是关联关系的一部分。 | 它是聚合关系的一部分。 |
它合并了类之间的一对一, 一对多, 多对一和多对多关联。 | 它表现出一种微弱的关系。 | 它表现出很强的关系。 |
它可以将另一个对象关联在一起。 | 在聚合关系中, 关联的对象在系统范围内独立存在。 | 在组成关系中, 关联的对象不能在系统范围内独立存在。 |
在这种情况下, 对象链接在一起。 | 在这种情况下, 链接的对象彼此独立。 | 在这里, 链接的对象相互依赖。 |
如果删除一个元素, 它可能会或可能不会影响其他关联的元素。 | 在聚合关系中删除一个元素不会影响其他关联元素。 | 如果删除其关联元素之一, 它将影响另一个元素。 |
示例:一位辅导员可以与多个学生联系, 或者一个学生可以与多个老师联系。 | 示例:汽车需要一个车轮才能正常运行, 但可能不需要相同的车轮。它也可以与另一个轮子一起工作。 | 示例:如果将文件放置在文件夹中, 并且该文件夹被删除。文件夹中的文件也将在删除文件夹时被删除。 |
推荐阅读
- UML关联(自反关联和定向关联图解)
- UML活动图介绍和用法图解
- UML-架构详细解释
- UML教程入门介绍
- TestNG注解属性用法示例
- TestNG组测试实例详细图解
- Android中为什么主线程不会因为Looper.loop()方法造成阻塞
- 安卓手机调试日志
- centos启动 报错 /dev/mapper/debian--vg-root无法进系统