0. 前言

相信大家在学习UML类图的时候,最大的困难可能来自两个方面:

1) 类图中各种关系的区别;

2) 多种关系的符号记忆容易混淆;

 

本着"Doone thing and do it well."的原则,本文不介绍UML类图中各种关系的区别。而重在介绍UML类图的符号理论,以及利用该理论帮助大家更好的记忆。

 

1. 准备

在开始阅读本文之前,你需要了解的知识有:

 

UML类图的概念;

UML类图有几种关系;

各种关系的强弱;

 

2. UML类图符号理论基础

UML类图主要有以下几种关系:

 

泛化Generalization

实现Realization

组合Composition

聚合Aggregation

关联Association

依赖Dependency

 

以上这六种关系的强弱是:

泛化> 实现> 组合> 聚合> 关联> 依赖

 

这六种关系,每一种都对应着一个符号。加起来就有六种符号,要想在较短的时间内记住这六种符号而且不产生混淆是一件不太容易的事情。那么该如何更有效的来记忆这些符号?

 

接下来我们将首先认识一下关于符号的基础知识。

 

2.1 类图符号基础知识

首先我们从整体上来认识一下表达类图关系的符号,类图关系的符号由三部分组成:箭头、线条和箭尾。

 

浅谈UML类图符号记忆_算法

 

 

 

箭头形状有两种,分别为箭头和三角箭头。

 

浅谈UML类图符号记忆_算法_02

 

线条形状有两种,分别为实线和虚线。

 

浅谈UML类图符号记忆_算法_03

 箭尾形状有三种,分别为点、空心菱形和实心菱形。

 

浅谈UML类图符号记忆_算法_04

 

 

综上,我们可以得知表达类图关系的符号一共有2x 2 x 3 = 12种,但是UML类图中只有6种关系,所以还剩下6种关系未被使用。

 

在了解类图关系的符号表达之后,我们来看一下符号的优先级关系。

 

2.2 符号优先级

从关系符号的组成来看,我们定义以下优先级关系:

箭头> 箭尾> 线条

 

对于箭头:

三角箭头> 箭头

 

对于箭尾:

实心菱形> 空心菱形> 点

 

对于线条:

实线> 虚线

 

所以,从上述优先级我们不难得出:

 

三角箭头+实线  > 

三角箭头+虚线 > 

箭头+实心菱形 > 

箭头+空心菱形 > 

箭头+实线        > 

箭头+虚线

 

上面的六种符号就是UML类图中定义的六种关系符号表达。

 

3. 应用

我们可以利用上述符号理论,轻松记忆UML的类图关系符号。具体的记忆方法如下:

 

了解各种关系的强弱排序;

了解符号的优先级关系;

类图关系符号一共有6个,我们分成3组,每组2个来记忆。

 

首先来记忆箭头:

三角箭头+ 实线

三角箭头+ 虚线

这两种分表表示泛化和实现。

 

接下来记忆箭尾:

实心菱形+ 实线

实心菱形+ 虚线分别表示组合和聚合。

 

最后我们来记忆线条:

箭头+ 实线

箭头+ 虚线分别表示关联和依赖。

 

有了这样的分组和符号优先级关系,我们就能很轻松的记忆UML类图关系,从此不再混淆,而且印象深刻。

 

4. 总结

本文主要介绍了UML类图符号的基础知识,并利用该基础知识帮助大家更好的记忆UML类图关系符号。

 

从UML类图符号基础知识,我们分析得出一共有12种符号,但是UML类图关系只使用了6种,剩下的其他6种如下:

 

三角箭头+ 实心菱形+ 实线

 

三角箭头+ 实心菱形+ 虚线

 

三角箭头+ 空心菱形+ 实线

 

三角箭头+ 空心菱形+ 虚线

 

箭头+ 实心菱形+ 虚线

 

箭头+ 空心菱形+ 虚线

 

如果今后UML需要定义新的类图关系,则可以参考上述符号理论,使用上述6种符号。

 浅谈UML类图符号记忆_算法_05