创建 UML 类图
UML类图用于展示计算机程序的结构。它们详细说明了每个“类”中存储的数据类型或属性、每个类提供的方法(操作或函数)以及类之间的关系。
类图可能是最常见、最重要的 UML 图类型。
虽然它们通常用于记录现有应用程序,但您可能会发现,在开始任何实现之前绘制类图,您的团队可以创建更清晰的代码。
UML类图需要很详细吗?
在修改现有应用程序或使用另一种编程语言重新实现它时,准确且详细的类图至关重要。当多个团队共同开发同一个程序时,规范和实现细节也很有用。
你可以只使用类名并绘制它们之间的关系来创建粗略的类图。利用这种概念层面的细节来获取对想法的反馈。
虽然UML 有一套定义完善的符号体系,但在粗略的类图中,你可以“放宽规则”。
本页
在 draw.io 中绘制 UML 类图
创建类图所需的形状位于两个 UML 形状库中。
启用 UML 形状库
点击左侧面板底部的“更多形状” 。
在软件部分启用UML 2.5和UML形状库。
点击“应用”返回图表编辑器。

大多数类形状都位于UML主形状库中。将鼠标悬停在形状库中的任何形状上即可查看更大的预览图。
提示: UML 形状库中的前两个类形状是可折叠的,因此可以轻松简化复杂的图表,而无需从头开始重新创建。

使用模板或示例类图
您可以新建一个图表,或者点击“排列”>“插入”>“模板”打开模板管理器。
在“基本”或“默认”模板类别中有一个简单的示例。
点击放大镜图标可查看更大的预览图。软件类别:复杂类图。
UML类别:高级类图和包图。
选择一个模板,然后单击“创建”或“插入”。

使用类形状
UML 类形状始终具有一个Class Name.
详细图中的类有两个额外的部分,分别用于属性和方法,通常遵循 UML 表示法,详见以下各节。
详细的 UML 类分为三个部分,类名位于最上方。
中间部分包含类的属性(数据或变量):
attributeName: type下半部分包含该类可以执行的方法(操作或函数):
methodName(parameterName: type): type

参数名称和数据类型是可选的。它们通常用于实现的详细类图或正式规范文档中。
在 draw.io 中,点击左侧的类形状,或将其拖到绘图画布上。UML 2.5 形状库包含一些专门的类形状。

提示:像处理ER 图中的其他表格形状(包括实体形状)一样处理类形状。
在 draw.io 中编辑 UML 类
选择类形状内的某一行:单击类形状一次即可选中整个形状。再次单击,这次单击类形状内的某一行,即可选中该属性或方法行。
重命名类:选择类并开始输入以更改其名称。
编辑属性或方法:双击属性或方法以选中所有文本。开始输入即可替换文本,或使用光标键或鼠标在文本中重新定位光标。

添加属性或方法:在 draw.io 中,有很多方法可以向类形状添加新行。
从库中添加属性或分隔符:从 UML 形状库中拖动一个
Item 1(属性)或Divider形状,并将其放置在绘图画布上现有类形状的要插入的位置。克隆行:选择一行,然后
Ctrl+Enter在 Windows 或Cmd+EntermacOS 系统中按下快捷键,即可在下方插入所选行的副本。使用快捷键Ctrl+D/Cmd+D或右键单击行并从上下文菜单中选择“复制”也能达到同样的效果。添加空白行:在“格式”面板的“排列”选项卡中,单击“在后插入行”或“在上插入行”按钮。如果您已选择整个班级形状,则会在班级末尾或开头插入空白行;否则,空白行将插入到所选行之前或之后。
将属性或方法从一个类移动到另一个类:将一行从一个现有类拖放到另一个类中。

删除行:选择该行,然后按 Enter 键Delete或右键单击并从上下文菜单中选择“删除” 。
提示:要重新定位类形状内的行,只需将其拖动到新位置即可。
在类图中采用 UML 表示法
UML 图通常遵循严格的符号表示法,以便能够轻松地转换为代码(或从代码自动生成)。
当然,这些“规则”可以放宽,正如 draw.io 中的基本类图模板所示。即便如此,最好还是使用一致的命名风格。
UML 表示法中的属性和方法名称
类名通常用粗体表示。抽象类名通常用斜体表示。
属性和方法名称通常用小写字母或驼峰式命名法(例如 forExample)书写。抽象方法通常用斜体书写。
能见度
属性或方法的可见性用其名称前的符号表示。
+公共元素可以从该类外部访问。-私有元素只能由该类内部的方法访问。#受保护的元素只能在其命名空间(一组类和包)内访问。~包元素只能在其包命名空间(一组相关的类)内访问。包图是类图的一种特殊形式。
正斜杠/表示属性是由其他属性派生或计算得出的。

范围
默认情况下采用实例作用域——每当该类被实例化时,属性可以具有不同的值,并且执行的方法可能会改变该实例。
类作用域或静态作用域通过给属性名称加下划线来表示——该类的所有实例的属性值都相同。
类型
您可以为属性和方法添加数据类型,包括传递给该方法的数据和该方法返回的数据。使用冒号后跟数据类型。例如:+name: string或+area(radius:float) :double
UML类图中的关系连接器
使用具有特定符号、两端带有标签以及实线或虚线的连接线来定义类之间的关系类型。
继承(泛化):父类处有一个开口三角形。这表明子类是父类的特化——它们扩展了父类。
实现(实现或执行):蓝图类中用虚线和空心三角形表示。这用于类实现“蓝图”类的功能,并且根据实现该功能的类的不同,实现方式可能有所不同。
依赖关系:一条带空心箭头的虚线。如果类 2 的定义发生变化,类 1 的定义也会发生变化,但反之则不然(取决于)。
关联:用实线连接两个类。在任一端或两端添加箭头,以表示这两个类彼此感知(或不感知)。
聚合:类 1 处有一个开放的菱形。一种特殊的关联类型,表示类 2 是类 1的一部分。
组成: 1 类为实心菱形。一种特殊的聚合类型,表明 2 类不能脱离1 类 而存在。在我们的图表查看器中打开这些关系。
提示:当两个类相互了解,并且可能使用对方的属性或方法时,请在关联关系的两端添加箭头,以表示双向关联。
在 draw.io 中绘制类关系
从UML形状库中单击或拖动要使用的连接器,然后将每个端点拖动并放到绘图画布上的类形状上。
或者,从 1 类到 2 类绘制连接线,或选择现有连接线。然后,在格式面板的“样式”选项卡中的下拉列表中更改其源箭头和目标箭头。

提示:当类的外部边缘以蓝色高亮显示时,将连接线末端拖放到类名上 -当您在绘图画布上移动类时,连接线将围绕类浮动。
连接器标签
您可以向连接器添加标签,以进一步定义类之间的关系。
指定关系中每个类的实例数量:一对一、一对多、多对多、确切数量等。
解释这种关系存在的原因。
注明所有权或角色。
提高可见性。
复杂 UML 类图中的注释
添加注释形状,并用虚线或点线箭头将其连接到类,以包含附加信息。使用UML 2.5 形状库中的 “注释”或“约束”形状。

有关 UML 表示法的更多信息,请参阅UML 2.5 规范。
有关的
为了与同事远程协作绘制类图草图,请使用 Sketch 在线白板主题,以最大程度地减少干扰。将图表文件存储在 Google 云端硬盘或 Microsoft OneDrive 中时,您可以与团队实时共享光标。
使用 Mermaid 表示法描述类及其关系,并根据文本自动生成图表。从菜单中选择“排列”>“插入”>“Mermaid” 。
注意:如果您使用的是 Sketch 白板主题,请单击+工具栏,然后选择“美人鱼”选项。

其他类型的UML图
UML 规范详细说明了许多不同类型的图表的表示法,以多种不同的方式对系统的行为和数据进行建模。
了解更多关于以下 UML 图的信息:
