PlantUML
导言
UML在编程时常用于画class类图
类图里元素有哪6种关系
在类图中,常见的六种关系如下:
- 关联关系(Association):
- 符号:实线(
--
),可带有箭头(-->
)。 -
含义:表示一个类知道另一个类的存在,通常用于说明类之间的协作关系。例如,
Order
类可能与Customer
类有关联关系。 -
聚合关系(Aggregation):
- 符号:带空心菱形的实线(
--o
)。 -
含义:是一种特殊的关联关系,表示一个类是另一个类的一部分,但生命周期是独立的,一般使用指针引用来使用。例如,一个
Team
类聚合了多个Player
类。 -
组合关系(Composition):
- 符号:带实心菱形的实线(
--*
)。 -
含义:也是一种特殊的关联关系,但与聚合不同,表示一个类完全依赖于另一个类的生命周期,也就是生命周期相同,一般直接实例化,。例如,一个
House
类组合了多个Room
类,Room
的生命周期依赖于House
。 -
继承关系(Generalization):
- 符号:带实心三角箭头的实线(
--|>
)。 -
含义:表示类与类之间的父子关系,一个类继承自另一个类。例如,
Dog
类继承自Animal
类。 -
实现关系(Realization):
- 符号:带实心三角箭头的虚线(
..|>
)。 -
含义:表示类与接口之间的实现关系,一个类实现了某个接口。例如,
List
类实现了Collection
接口。 -
依赖关系(Dependency):
- 符号:虚线箭头(
..>
)。 - 含义:表示一个类依赖于另一个类,但这种依赖是暂时的或轻量级的,通常在方法参数中出现。例如,
Car
类依赖于Engine
类,因为Car
需要Engine
作为参数来启动。
有虚线实线,还有三角箭头,菱形箭头,箭头也有虚实两类。分别什么意思
在 PlantUML 的类图中,虚线、实线、箭头形状和方向,以及菱形箭头等元素用于表示不同的关系类型和连接方式。以下是这些符号的具体含义:
- 实线箭头 (
-->
或->
): - 方向:箭头指向的方向表示关系的方向。
-
含义:表示关联关系(Association)。这是最基本的关系,表示一个类知道另一个类的存在。
-
虚线箭头 (
..>
或..->
): - 方向:箭头指向的方向表示关系的方向。
-
含义:表示依赖关系(Dependency)。依赖关系表示一个类使用了另一个类,例如在方法参数中使用了某个类。
-
实线三角箭头 (
--|>
或-|>
): - 方向:三角箭头指向的方向表示继承关系的方向。
-
含义:表示继承关系(Generalization)。用于表示一个类继承自另一个类(父类或接口)。
-
虚线三角箭头 (
..|>
或..|>
): - 方向:三角箭头指向的方向表示实现关系的方向。
-
含义:表示实现关系(Realization)。通常用于表示类实现了某个接口。
-
实线菱形箭头 (
--*
或-*
): - 方向:菱形指向的方向表示聚合关系的方向。
-
含义:表示聚合关系(Aggregation)。聚合关系表明一个类包含另一个类,但两者的生命周期是独立的。例如,班级包含学生,但学生的生命周期与班级无关。
-
实心菱形箭头 (
--o
或-o
): - 方向:实心菱形指向的方向表示组合关系的方向。
- 含义:表示组合关系(Composition)。组合关系表明一个类包含另一个类,并且被包含类的生命周期依赖于容器类的生命周期。例如,房间包含墙壁,房间消失后墙壁也不复存在。
这些符号通过组合使用可以清晰地表达类之间的复杂关系。例如,继承关系与实现关系、依赖关系与关联关系等在类图中都有不同的表达方式。