UML基础语法

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

类图的格式

每个类用一个矩形表示,分为三部分:

  • 第一部分:类名
  • 第二部分:属性(字段)列表
  • 第三部分:方法(函数)列表

访问修饰符

C# 访问修饰符 UML代码 含义
publick + 公开访问,任何地方都可以访问
private - 私有访问,仅限类内部
protected # 受保护访问,类和子类可以访问
internal ~ 内部访问,仅限同一个程序集访问
protected internal #~ 受保护或内部访问,同一程序集或子类可访问
private internal ~# 私有保护访问,限同一程序集内的子类访问

20241217学习绘制C#的UML类图 - 图1

类修饰符

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

20241217学习绘制C#的UML类图 - 图2

类与类的关系

关系 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)

20241217学习绘制C#的UML类图 - 图3

实现(Realization)

20241217学习绘制C#的UML类图 - 图4

关联(Association)

20241217学习绘制C#的UML类图 - 图5

单向关联(UnidirectionalAssociation)

20241217学习绘制C#的UML类图 - 图6

聚合(Aggregation)

20241217学习绘制C#的UML类图 - 图7

组合(Composition)

20241217学习绘制C#的UML类图 - 图8

依赖(Dependency)

20241217学习绘制C#的UML类图 - 图9