本文主要是介绍知识点滴 - UML类关系图及描画工具drawio,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
UML Class Diagram Relationships / UML类图中的各种关系
这篇文章解释了如何正确确定和实现适用于面向对象建模的不同类图关系。
This article explains how to correctly determine and implement the different class diagram relationships that are applicable in object-oriented modeling.
Relationships in UML class diagrams / UML类图中的各种关系
什么是类图?
类图是面向对象建模的主要构建模块。它们被用来显示系统中的不同对象、它们的属性、它们的操作以及它们之间的关系。
下图是一个简单类的例子。
带有属性和操作的简单类图 / Simple class diagram with attributes and operations
在这个例子中,描述了一个名为 "贷款账户 "的类。类图中的类用一个矩形表示,分成三部分:
- 最上面的部分包含了类的名称。
- 中间部分包含该类的属性。
- 底部的分区显示了与该类相关的可能操作。
这个例子显示了一个类是如何以一种非常系统和清晰的方式来封装某个特定对象的所有相关数据的。类图是一个类似于上面的类的集合。
类图中的关系
类是以特定的方式相互关联的。特别是,类图中的关系包括不同类型的逻辑连接。以下是UML中规定的逻辑关联类型:
* Association
* Directed Association
* Reflexive Association
* Multiplicity
* Aggregation
* Composition
* Inheritance/Generalization
* Realization
Association 关联
这是一个广义的术语,包括了类之间的任何逻辑联系或关系(logical connection or relationship)。例如,乘客和飞机可以像上面那样联系起来。
表示有关系的两个类,并且关系是双向的。
Directed Association 直接关联
这个指的是用带箭头的线表示的方向关系。箭头描绘了一个包含和被包含(container-contained)的有方向性的关系。
和普通的关联不同,这里体现了关系的方向性。根据一架飞机,可以找到里面的乘客,飞机负责运送乘客,飞机是主动的一方,而反过来乘客就比较被动,不会对飞机造成什么影响。
Reflexive Association 反身关系
当一个类可能有多种职能或责任时,就会出现这种情况。例如,一个在机场工作的工作人员可能是飞行员、航空工程师、售票员、保安或维修人员。如果维修人员是由航空工程师管理的,那么在同一类别的两个实例中就可能存在管理的关系。
Multiplicity 集群关系
这是在描述一个类作为一个集合与另一个类作为集合元素的主动型的逻辑关联。例如,一个机群可能包括多架飞机,而一架商业飞机可能包含零到许多乘客。图中的符号0...*意味着 "零到多个"。
Aggregation 聚合 (has a 关系)
是指一个特定类的形成是由另一个类聚集而成或看成另一个类的集合。例如,"图书馆 "这个类是由一本或多本书籍以及其他部分组成的。在聚合中,所包含的类并不强烈依赖于容器的生命周期。在同一个例子中,即使图书馆解散了,书籍也会一直存在。为了在图中显示聚合关系,在父类附近画一条从父类到子类的线,并在父类附近画一个菱形。
Composition 组合
组合关系与聚合关系非常相似。唯一的区别是它的关键目的是强调所包含的类对容器类的生命周期的依赖性。也就是说,当容器类被破坏时,包含的类将被抹去。例如,一个双肩包的侧袋在双肩包被破坏后也将不复存在。
为了在UML图中显示组合关系,使用一条连接两个类的方向线,在容器类旁边有一个填充的菱形,方向箭头指向包含的类。
Inheritance / Generalization 继承和泛化 (is a 关系)
指的是一种关系,其中一个相关的类改写了父类的相同功能。换句话说,子类是父类的一个特定类型。为了在UML图中显示继承性,用一个未填充的箭头画出一条从子类到父类的实线。
Realization 实现
表示一个类中定义的功能由另一个类来实现。为了在UML中显示这种关系,从定义功能的类到实现功能的类,要画一条带有未填实心箭头的断线。在这个例子中,打印机类实现了一个Printer Setup接口,这个接口是用来进行打印机设置用的。
------------------------------------------------
可以使用Draw.io来描画UML图。Draw.io和diagrams.net是同一个,后者是新名字。
使用Draw.io可以使用网页版,也可以下载安装到本地。
使用截图如下:
参考:
Class Diagram Relationships in UML Explained with Examples
这篇关于知识点滴 - UML类关系图及描画工具drawio的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!