知识点滴 - UML类关系图及描画工具drawio

UML Class/ UML类图中的各种关系
这篇文章解释了如何正确确定和实现适用于面向对象建模的不同类图关系 。
Thishow toandtheclassthat arein - .
in UML class/UML类图中的各种关系
什么是类图?
类图是面向对象建模的主要构建模块 。它们被用来显示系统中的不同对象、它们的属性、它们的操作以及它们之间的关系 。
下图是一个简单类的例子 。
带有属性和操作的简单类图 /classwithand
在这个例子中 , 描述了一个名为 "贷款账户 "的类 。类图中的类用一个矩形表示 , 分成三部分:
- 最上面的部分包含了类的名称 。
- 中间部分包含该类的属性 。
- 底部的分区显示了与该类相关的可能操作 。
这个例子显示了一个类是如何以一种非常系统和清晰的方式来封装某个特定对象的所有相关数据的 。类图是一个类似于上面的类的集合 。
类图中的关系
类是以特定的方式相互关联的 。特别是 , 类图中的关系包括不同类型的逻辑连接 。以下是UML中规定的逻辑关联类型:
*
*
*

知识点滴 - UML类关系图及描画工具drawio

文章插图
*
*
*
* /
*
关联
这是一个广义的术语 , 包括了类之间的任何逻辑联系或关系(or ) 。例如 , 乘客和飞机可以像上面那样联系起来 。
【知识点滴 - UML类关系图及描画工具drawio】表示有关系的两个类 , 并且关系是双向的 。
直接关联
这个指的是用带箭头的线表示的方向关系 。箭头描绘了一个包含和被包含(-)的有方向性的关系 。
和普通的关联不同 , 这里体现了关系的方向性 。根据一架飞机 , 可以找到里面的乘客 , 飞机负责运送乘客 , 飞机是主动的一方 , 而反过来乘客就比较被动 , 不会对飞机造成什么影响 。
反身关系
当一个类可能有多种职能或责任时 , 就会出现这种情况 。例如 , 一个在机场工作的工作人员可能是飞行员、航空工程师、售票员、保安或维修人员 。如果维修人员是由航空工程师管理的 , 那么在同一类别的两个实例中就可能存在管理的关系 。
集群关系
这是在描述一个类作为一个集合与另一个类作为集合元素的主动型的逻辑关联 。例如 , 一个机群可能包括多架飞机 , 而一架商业飞机可能包含零到许多乘客 。图中的符号0...*意味着 "零到多个" 。
知识点滴 - UML类关系图及描画工具drawio

文章插图
聚合 (has a 关系)
是指一个特定类的形成是由另一个类聚集而成或看成另一个类的集合 。例如 , "图书馆 "这个类是由一本或多本书籍以及其他部分组成的 。在聚合中 , 所包含的类并不强烈依赖于容器的生命周期 。在同一个例子中 , 即使图书馆解散了 , 书籍也会一直存在 。为了在图中显示聚合关系 , 在父类附近画一条从父类到子类的线 , 并在父类附近画一个菱形 。
组合
组合关系与聚合关系非常相似 。唯一的区别是它的关键目的是强调所包含的类对容器类的生命周期的依赖性 。也就是说 , 当容器类被破坏时 , 包含的类将被抹去 。例如 , 一个双肩包的侧袋在双肩包被破坏后也将不复存在 。
为了在UML图中显示组合关系 , 使用一条连接两个类的方向线 , 在容器类旁边有一个填充的菱形 , 方向箭头指向包含的类 。