加载中...

UML类图的基本操作


类图

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

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

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

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

合成复用原则

代码:

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

A <|- B
class A {
    +operation a():void
    +operation c():void
    +operation b():void
}
note top: B 仅仅只是使用A的方法,\n使用继承就会让AB耦合性增强
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 接口类
@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) `< –`
组合关系 *-- img
聚合关系 o-- img
依赖关系 <-- 具体清看下图Class15 ..> Class16
关联关系 -- 具体清看下图Class9 --> Class10
实现关系(implements) `< ..`

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

@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

在这里插入图片描述

在这里插入图片描述

关系上的标签

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

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

标签

@startuml

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

类03 o-- 类04 : 聚合

类05 --> "1" 类06

@enduml

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

@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这个关键字也是可以的,使用 .. 符号可以作出一条连接它与其它对象的虚线。

@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

备注

定义可访问性

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

字符 图标(属性) 图标(方法) 可访问性
- img img private 私有
# img img protected 受保护
~ img img package private 包内可见
+ img img public 公有
@startuml

class Dummy {
 -field1
 #field2
 ~method1()
 +method2()
}

@enduml

访问性

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


文章作者: shaoshaossm
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 shaoshaossm !
评论
  目录