PlantUML语法(全)及使用教程-类图

目录


1. 类图

类图的设计语法与编程语言的传统语法相似。这种相似性为开发人员提供了一个熟悉的环境,从而使创建图表的过程更简单、更直观。这种设计方法不仅简洁,而且还能创建既简洁又富有表现力的表述。此外,它还允许通过与序列图相呼应的语法来描绘类之间的关系,为流畅而深刻地描绘类之间的交互铺平了道路。除了结构和关系表示法,类图语法还支持进一步的丰富,如包含注释和应用颜色,使用户能够创建信息丰富且视觉上吸引人的图表。

1.1、什么是类图

类图(Class Diagram)是描述类、接口、协同以及他们之间关系的图,用来显示系统中这些概念的静态结构。

类图是其它图的基础。我们可以在类图的基础上,使用状态图、协作图、组件图和配置图等。

类图的主要作用有:

  1. 对系统的词汇进行建模
  2. 对简单的协作进行建模
  3. 对逻辑数据库模式进行建模

类图主要由类、接口和各种关系组成。

关系主要包括泛化关系、依赖关系、关联关系和实现关系。

1.2、元素声明

java 复制代码
@startuml
abstract        abstract
abstract class  "abstract class"
annotation      annotation
circle          circle
()              circle_short_form
class           class
class           class_stereo  <<stereotype>>
diamond         diamond
<>              diamond_short_form
entity          entity
enum            enum
exception       exception
interface       interface
metaclass       metaclass
protocol        protocol
stereotype      stereotype
struct          struct
@enduml

1.3、类之间的关系

关系类型 符号 绘图
泛化关系 <--
组合关系 *--
聚合关系 o--

可以用... 来代替-- ,会显示为虚线。

java 复制代码
@startuml
Class01 <|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
@enduml
java 复制代码
@startuml
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
@enduml
java 复制代码
@startuml
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
@enduml

1.4、关系上的标签

在关系之间使用标签来说明时, 使用 :后接 标签文字。 对元素的说明,你可以在每一边使用 "" 来说明

java 复制代码
@startuml
类01 "1" *-- "many" 类02 : 包含
类03 o-- 类04 : 聚合
类05 --> "1" 类06
@enduml

在标签的开始或结束位置添加< 或 >以表明是哪个对象作用到哪个对象上

java 复制代码
@startuml
class 汽车

发动机 - 汽车 : 驱动 >
汽车 *- 轮子 : 拥有 4 >
汽车 -- 人 : < 所属
@enduml

1.5、在元素名称和关系标签中使用非字母

如果你想在类(或枚举...)的显示名称中使用非字母,可以

  • 在类定义中使用as 关键字来指定一个别名
  • 在类名称周围加上引号""
java 复制代码
@startuml
class "This is my class" as class1
class class2 as "It works this way too"

class2 *-- "foo/dummy" : use
@enduml

1.6、添加方法

要声明属性和方法,你可以使用符号:,后面跟字段或方法的名称。 编译器会通过检查括号来选择方法和字段。

java 复制代码
@startuml
Object <|-- ArrayList

Object : equals()
ArrayList : Object[] elementData
ArrayList : size()

@enduml

可用花括号{} 为所有属性和方法分组。 注意,语法对类型/名称的顺序有很大的灵活性。

java 复制代码
@startuml
class Dummy {
  String data
  void methods()
}

class Flight {
   flightNumber : Integer
   departureTime : Date
}
@enduml

可以使用{field}和{method}修饰符来覆盖编译器对属性和方法的默认识别。

java 复制代码
@startuml
class Dummy {
  {field} A field (despite parentheses)
  {method} Some method
}
@enduml
相关推荐
巽星石1 个月前
PlantUML中的实体关系图
uml·plantuml·er图
Dnelic-3 个月前
【笔记】PUML语法使用
插件·思维导图·plantuml·puml·时序图·活动图·mindmap
来一杯龙舌兰4 个月前
PlantUML-UML 绘图工具安装、Graphviz安装、本地使用/在线使用、语法、图示案例
uml·绘图工具·plantuml·时序图·开发绘图
巽星石4 个月前
用PlantUML可视化显示JSON
json·godot·gdscript·plantuml
巽星石4 个月前
用PlantUML和语雀画UML类图
godot·gdscript·uml·plantuml·类图
aabond8 个月前
plantUML使用指南之序列图
架构·uml·plantuml·统一建模语言·序列图
程序员布瓜8 个月前
PlantUML简介
plantuml
Walter Sun8 个月前
强大的文本绘图——PlantUML
plantuml·文本绘图
Damon小智9 个月前
PlantUML绘制UML图教程
架构·uml·plantuml·统一建模语言·时序图·顺序图