UML 类图
DATE | CHANGELOG |
---|---|
2023年4月30日 | init |
在 UML 中,类图是静态的。通过展示类、类属性、类操作和类之间的关系,来描述系统结构。
模型
模型是类途中对现实世界的抽象。
接口
一组行为的抽象。
---
title: 接口示例
---
classDiagram
class Speaker {
<<interface>>
speak(String statement) String
}
抽象类
---
title: 类示例
---
classDiagram
class Abstract {
<<abstract>>
}
类
具有属性和方法的对象。
---
title: 类示例
---
classDiagram
class Speakerman {
String name
speak(String statement) String
}
可见性
#表示 public
-表示 private
#表示 protected
~表示 package 或者 internal
---
title: 可见性示例
---
classDiagram
class Visibility {
+int n1
-int n2
#int n3
~int n4
+m1()
-m1()
#m3()
~m4()
}
修饰符
*表示 abstract,斜体
$表示 static,下划线
---
title: 修饰符示例
---
classDiagram
class Modifier {
int n1$
+m1()*
+m2()$
}
关系
关系是模型元素之间的连接。
继承
空心三角 + 实线,男人属于人。
Man is a Person
---
title: 继承示例
---
classDiagram
class Person {
}
class Man {
}
Person <|-- Man
实现
空心三角 + 虚线,鸟能飞。
Bird has Fly ability
---
title: 继承示例
---
classDiagram
class Fly {
<<interface>>
}
class Bird {
}
Fly <|.. Bird
聚合
空心菱形 + 实线,教室拥有黑板,但黑板不是教室的一部分。
Classroom possess Blaskboard, but Blackboard isn’t part of Classroom
---
title: 聚合示例
---
classDiagram
class Classroom {
Blackboard blackboard
}
class Blackboard {
}
Classroom o-- Blackboard
组合
实心菱形 + 实线,人有胳膊,同时胳膊不能独立存在。
Arm is part of Person
---
title: 组合示例
---
classDiagram
class Person {
Arm arm
}
class Arm {
}
Person *-- Arm
依赖
箭头 + 虚线,人依赖水。
Person depand on Water
---
title: 依赖示例
---
classDiagram
class Person {
Water water
}
class Water {
}
Water <.. Person
关联
箭头 + 实线,,人需要知道天气。
Person should know Climate
---
title: 关联示例
---
classDiagram
class Person {
Climate climate
}
class Climate {
}
Climate <-- Person
总结
- 继承和实现可以相互替代。使用接口使用实现关系,类之间选择继承关系;
- 依赖和关联不常用。因为依赖关系和关联关系可以进一步定义为聚合关系或者组合关系;
- 聚合适用范围比组合更广;