UML类图
UML(Unified Modeling Language)类图是一种常用于面向对象软件设计和建模的图形表示方法。它用于描述系统中的类、对象、属性和方法之间的关系,以便更好地理解和可视化系统的结构和行为。
基本元素
- 类(Class):表示系统中的对象类型。一个类通常包括类名、属性和方法。
- 属性(Attributes):表示类的特征或数据成员。它们通常以名称和数据类型表示。
- 方法(Methods):表示类的行为或操作。它们通常以名称、参数和返回类型表示。
属性可见性
- private 属性和方法都有一个减号,这表明每个属性和方法都是私有的,对于任何其他类或子类它们无法访问。
+ public 属性和方法都有一个加号,这表明每个属性和方法都是公开的,对于任何其他类或子类它们无都可以访问。
# protected 属性和方法都有一个井号,这表明每个属性和方法都收到保护,只能由同一个类或其子类访问。
~ package/default 属性和方法都有一个波浪线,这表明将可见性设置为包或者默认值,这意味着它可再同一个包内被任何其他类访问。 这种情况不常见。
抽象类
使用两个尖括号包裹类名或者类名斜体
接口
表示一组抽象方法的集合,类可以实现接口以获得这些方法的具体实现。
关系
继承关系
表示一个类派生自另一个类。子类继承了父类的属性和方法,并可以添加新的属性和方法。
继承关系使用空心箭头。
关联关系
表示两个或多个类之间的连接或关联。关联可以是双向的或单向的,并且可以具有多重性(表示一个类与另一个类的关联数量)。
关联关系使用直线。表示类和类之间没有依赖关系只是一种简单的关联关系。
聚合关系
表示整体与部分之间的关系。在聚合关系中,一个类包含另一个类的对象,但它们之间的生命周期可以不同步。
聚合关系使用直线加空心菱形。聚合关系是一种特殊类型的关联关系。
Tortoise是一个个体它可以成为组成Creep的一部分也可以离开Creep类独立存在。
组合关系
类似于聚合关系,但在组合关系中,整体对象的生命周期与部分对象相关联。如果整体对象被销毁,部分对象也会被销毁。
聚合关系使用直线加实心菱形。组合关系是子类不能独立存在于组合类之外,如果组合类不存在则子类也不存在。
多重性
多重性允许对关系设置数字约束。
- 0..1 表示零到一个可选关系
- n 表示特定数量的可选关系
- 0..* 表示零到多个可选关系
- 1..* 表示一到多个可选关系
- m..n 表示特定范围的可选关系
游客中心只有一个大堂,但是有一到多个卫生间。