转载:五分钟阅读UML类图
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML处理类图。实际上,UML类图中最常用的元素可以在五分钟内掌握。让我们快速了解它:
在UML类图中,类使用包含类名、属性(field) 和方法(method) 并用分割线矩形表示,如下图所示Employee类,它包含name,age和email以及这三个属性modifyInfo()方法。
在属性/方法名称/方法名称是什么意思?它们表示该属性或方法的可见性,UML类图中有三种符号表示可见性:
:表示public
- :表示private
#:表示protected(friendly也属于这类))
因此,上图中的Employee有三种私有属性和一种公共方法。
事实上,属性的完整表达是这样的:
中括号中的内容是可选的
在上图中,我们已经看到了方法的表达形式。实际上,方法的完整表达如下:
同样,中括号中的内容也是可选的。
如下图所示Demo定义了三种方法:
public方法method1接收一种类型Object返回值类型为void
protected方法method2无参数,返回值类型为String
private方法method3接收类型分别为int、int[]参数,返回值类型为int
1、关联关系
关联可以进一步分为单向关联、双向关联和自关联。
(1)单向关联
在UML类图中的单向关联用带箭头的直线表示。上图显示每个客户都有一个地址,通过让步Customer类持有一种类型Address实现成员变量类。
(2)双向关联
从上图中很容易看出,所谓双向关联,就是双方持有对方类型的成员变量。UML在类图中,双向关联用没有箭头的直线表示。在上图中Customer维护一个类Product[]数组表示客户购买了这些产品;在Product维护一个类Customer该类型的成员变量表示该产品是由客户购买的。
(3)自关联
自关联在UML类图用箭头和指向自己的直线表示。上图是指Node类包含类型为Node成员变量,即自我包含。
2、聚合关系
上图中的Car类与Engine类是聚合关系(Car包含一个类Engine类型成员变量)。从上图可以看出,UML中间的聚合关系空心菱形和箭头直线表示。聚合关系强调整体包含部分,但部分可以与整体分开存在。例如,上图中的汽车包含发动机,发动机可以单独存在。
3、组合关系
组合关系和聚合关系最大的区别在于,如果这里的部分脱离了整体,它就不复存在了。如下图所示:
显然,嘴是头的一部分,不能脱离头而单独存在。UML在类图中,组合关系用实心菱形和箭头直线表示。
4、依赖关系
从上图可以看出,Driver的drive只有一种方法被引入Car对象可以发挥作用,所以我们说Driver类依赖于Car类。在UML类图中,依赖关系用带箭头的虚线表示。
5、继承关系
继承关系对应extend关键字,在UML类图用带空心三角形的直线表示,如下图所示,Student类与Teacher类继承了Person类。
接口实现关系
这种关系对应implement关键字,在UML类图用带空心三角形的虚线表示。如下图所示,Car类与Ship类都实现了Vehicle接口。
到了这里,UML我们介绍了类图中最常见的表达方式。有了这些,我们就能理解常见的UML类图,剩下的见面再查。
http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117683&idx=1&sn=85e9946c81a5c283a691acfca174d52a#rd
五分钟读懂UML类图 - shindoyang - 博客园