UML图中的类图及类图之间的关系
UML简介
UML(Unified Modeling Language,UML)统一建模语言,是用来设计软件蓝图的可视化建模语言,它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
类图
类图在UML中用于表示类以及类与类之间的静态关系的信息,也是我们在学习设计模式时最重要的一种模型,通过UML类图,我们可以更加清晰明了的理解设计模式的工作原理,在后续章节中会频繁使用到。
类图中的关系表示符
在使用UML进行面向对象设计时,为了清晰的表述类与类之间的关系,UML提供了一系列的关系标识符,如下所示:
- Dependency:表示依赖关系;
- Association:表示关联关系;
- Generalization:表示泛化关系,也就是继承关系;
- Realization:表示实现,即一个类实现一个接口;
- Aggregate:表示聚合关系;
- Composite:表示组合关系;
类图中的关系表示法
1. 依赖关系
假如一个 A 类 中使用了另一个类 B,则说明类 A依赖于类 B,使用的方式有很多种,例如:成员变量、方法参数、返回值、以及在方法中的局部变量,这些都属于依赖关系,在UML类图中,依赖关系表示如下:
2. 泛化关系
泛化关系是依赖关系中的一种特例,如果一个类 B 继承于类 A,则说明类A 与类 B之间存在泛化关系。
3. 实现关系
实现关系也是依赖关系中的一种特例,如果一个类B 实现了接口 A,则说明两者之间存在实现关系;
4. 关联关系
- 关联关系实际上是类与类之间的关系,他是依赖关系的特例。
- 关联关系具有导航性:即双向关系和单向关系
- 关联关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或多个),“0,1”(表示0个或1个),“n…m”(表示n到m个都可以),“m…”(表示至少m个)
5. 聚合关系
聚合关系表示整体与部分的关系,整体与部分可以分开,聚合关系是关联关系的特例,所以它也具有导航性和多重性。
6. 组合关系
如果认为类之间具有不可分割的关系,则升级为组合关系,组合也是整体与部分的关系,但是整体与部分不可分开,组合关系是关联关系中的一种强耦合关系。