UML类图的基本操作

365怎么访问 2026-01-17 17:01:39 admin

类图 在IDEA中安装和创建文件就不用说了直接说代码吧。

仅记录我目前使用到的的操作,全部使用详情请参考:https://plantuml.com/zh/class-diagram

本篇文章会持续更新我使用UML类图中用到的操作

这是我第一次用UML类图画出的图形

代码:

代码语言:javascript复制@startuml

'https://plantuml.com/class-diagram

A <|- B

class A {

+operation a():void

+operation c():void

+operation b():void

}

note top: B 仅仅只是使用A的方法,\n使用继承就会让A和B耦合性增强

class B {

}

A1 <.. B1 :依赖

class A1 {

+operation a():void

+operation c():void

+operation b():void

}

class B1 {

+operation(a1:A1):void

}

A2 o-- B2 :聚合

class A2 {

+operation a():void

+operation c():void

+operation b():void

}

class B2 {

-a2:A2

+setA2(a2:A2):void

}

A3 *-- B3 :组合

class A3 {

+operation a():void

+operation c():void

+operation b():void

}

class B3 {

-a3:A3 = new A3()

}

@enduml元素声明关键字

元素类型

abstract (class)

抽象类

annotation

注释类

circle

圆形结点

()

圆形结点(简写)

class

diamond

菱形结点

<>

菱形结点(简写)

entity

实例

enum

枚举类

interface

接口类

代码语言:javascript复制@startuml

abstract abstract

abstract class "abstract class"

annotation annotation

circle circle

() circle_short_form

class class

diamond diamond

<> diamond_short_form

entity entity

enum enum

interface interface

@enduml类之间的关系关系类型

符号

绘图

泛化关系(extends)

`<

–`

组合关系

*--

聚合关系

o--

依赖关系

<--

具体清看下图Class15 ..> Class16

关联关系

--

具体清看下图Class9 --> Class10

实现关系(implements)

`<

..`

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

代码语言:javascript复制@startuml

Class01 <|-- Class02

Class03 *-- Class04

Class05 o-- Class06

Class07 .. Class08

Class09 -- Class10

Class11 <|.. Class12

Class13 --> Class14

Class15 ..> Class16

Class17 ..|> Class18

@enduml

@startuml

Class19 <--* Class20

Class21 #-- Class22

Class23 x-- Class24

Class25 }-- Class26

Class27 +-- Class28

Class29 ^-- Class30

@enduml关系上的标签 在关系之间使用标签来说明时, 使用 :后接 标签文字。

对元素的说明,你可以在每一边使用 "" 来说明.

代码语言:javascript复制@startuml

类01 "1" *-- "many" 类02 : 包含

类03 o-- 类04 : 聚合

类05 --> "1" 类06

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

代码语言:javascript复制@startuml

class 汽车

发动机 - 汽车 : 驱动 >

汽车 *- 轮子 : 拥有 4 >

汽车 -- 人 : < 所属

@enduml备注和版型 版型通过类关键字(“<<“和”>>“)来定义

你可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注。

你还可以在类的声明末尾使用note left, note right,note top, note bottom来添加。

此外,单独用note这个关键字也是可以的,使用 .. 符号可以作出一条连接它与其它对象的虚线。

代码语言:javascript复制@startuml

class Object << general >>

Object <|--- ArrayList

note top of Object : In java, every class\nextends this one.

note "This is a floating note" as N1

note "This note is connected\nto several objects." as N2

Object .. N2

N2 .. ArrayList

class Foo

note left: On last defined class

@enduml定义可访问性 当你定义属性或者方法时,你可以使用特殊符号定义相应条目的可访问性质。

字符

图标(属性)

图标(方法)

可访问性

-

private 私有

#

protected 受保护

~

package private 包内可见

+

public 公有

代码语言:javascript复制@startuml

class Dummy {

-field1

#field2

~method1()

+method2()

}

@enduml 你可以采用命令 skinparam classAttributeIconSize 0 来展示特殊符号本身: