UML类图中类之间关系汇总
1 UML类之间的关系介绍
在绘制UML图的过程中,除了要设计合理的模型(对象),还要准确清晰地标识出模型之间的关系。不同的关系使用不同的标识来表示,也是有一定规范的。画出规范的UML图,不同组织、开发者之间可以仅仅通过UML图就可以明白彼此的设计意图,可以提高沟通效率。
2 类之间的常用关系
类之间的关系,常见的有:
-
依赖关系
依赖关系,Dependency。依赖关系是对象之间最弱的一种关系,是临时性的关联。在具体的代码中,一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。 -
关联关系
关联关系,Association。关联关系是对象之间的一种引用关系。比如,企鹅与南极气候之间的关系。关联关系通常使用类的属性表达。关联可以有方向,即导航。一般不作说明的时候,导航是双向的,不需要在线上标出箭头。 大部分情况下导航是单向的,可以加一个箭头表示。
关联关系表示类之间的持久关系。关联关系一般表示一种重要的业务之间的关系,需要保存或者说需要“持久化”的,或者说需要保存到数据库中的。而依赖关系表示类之间的一种“临时、短暂”关系,不需要保存。 -
聚合关系
聚合关系,Aggregation,又称聚集关系。聚合关系是关联关系的一种,表示 has-a 的关系,一般用来表示整体与个体的关系。与关联关系一样,聚合关系也是通过实例变量来实现。聚合关系和关联关系在语法上没法区分,但是从语义上可以很好的区分两者的区别。例如,雁群与大雁就是整体与个体的关系。- 关联关系和聚合关系的区别
关联关系所涉及的两个对象是处在同一个层次上的。例如,企鹅和气候就是一种关联关系,而不是聚合关系,因为企鹅不是由气候组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表个体。例如,大雁群和大雁就是聚合关系,因为大雁是大雁群的一个个体。
- 关联关系和聚合关系的区别
-
组合关系
组合关系,Composition。组合关系表示一个对象是另一个对象的组成部分,部分离开整体就没有实际意义。组合关系一般表示的是整体与部分的关系,表示 ** contains-a** 的含义。组合关系是关联关系的一种,是一种更强的关联关系,使用属性表达。例如,鸟和翅膀的关系。笔记本电脑和它的CPU、内存和硬盘就是组合关系,因为CPU、内存和硬盘是笔记本电脑的组成部分。 -
继承关系
继承关系,又称为泛化(Generalization),或者扩展(Extension),表示 is-a 的关系。一般用于表示抽象和具体之间的关系,把具有相同的属性或者行为的对象抽象为抽象类或者父类,以供各个具体类进行继承。例如,父与子的关系,树与杨树的关系等。
3 UML中各种关系的表示方法
在绘制UML图的时候,需要使用对应的符号来表示相应的关系,以PlantUML为例。如下图所示:
UML类之间关系