UML基础语法
https://plantuml.com/zh/class-diagram
类图的格式
每个类用一个矩形表示,分为三部分:
- 第一部分:类名
- 第二部分:属性(字段)列表
- 第三部分:方法(函数)列表
访问修饰符
C# 访问修饰符 |
UML代码 |
含义 |
publick |
+ |
公开访问,任何地方都可以访问 |
private |
- |
私有访问,仅限类内部 |
protected |
# |
受保护访问,类和子类可以访问 |
internal |
~ |
内部访问,仅限同一个程序集访问 |
protected internal |
#~ |
受保护或内部访问,同一程序集或子类可访问 |
private internal |
~# |
私有保护访问,限同一程序集内的子类访问 |

类修饰符
类的类型 |
UML代码 |
含义 |
class |
class Person{…} |
普通类 |
abstract class |
abstract class Person{…} |
抽象类 |
interface |
interface IPerson{…} |
接口 |
enum |
enum PersonType{…} |
枚举 |
class |
class Person{…} |
泛型 |

类与类的关系
关系 |
UML代码 |
含义 |
继承(Generalization) |
class Dog extends Animal{…} |
子类从父类继承所有的公共方法和属性。继承的方向是从子类指向父类。常见于类之间的 “is-a” 关系,例如 Dog is a Animal。 |
实现(Realization) |
class Bird implements IFlyable{…} |
表示类实现接口,接口只定义方法签名,类提供方法实现。类与接口之间的实现关系通过虚线带三角箭头表示。 |
关联(Association) |
class Person — class Car{…} |
类之间的双向或单向关系,表示对象之间有某种通信、交互或共享的关系。可以是任意方向的。 |
单向关联(UnidirectionalAssociation) |
class Person —> class Address{…} |
表示类 A 与类 B 之间的单向关系,A 依赖于 B,但 B 不依赖于 A。 |
聚合(Aggregation) |
class Library o— class Book{…} |
聚合表示 “整体—部分” 的关系,部分可以独立于整体存在。常见的有 Library 和 Book,一个图书馆包含多个书籍。 |
组合(Composition) |
class House *— class Room{…} |
组合是聚合的特殊形式,表示生命周期依赖关系,部分对象的生命周期依赖于整体对象的生命周期。 |
依赖(Dependency) |
class Person ..> class Car{…} |
依赖表示一个类使用另一个类的方法或属性,依赖关系表明一个类的变化会影响到另一个类。 |
继承(Generalization)

实现(Realization)

关联(Association)

单向关联(UnidirectionalAssociation)

聚合(Aggregation)

组合(Composition)

依赖(Dependency)
