一、引言
在上一篇博客中介绍了UML的总结结构和事物的有关内容,事物是UML中的基本知识,那么关系就是UML中中重要的知识了,在抽象的过程中,我们会发现很少有类是独立存在的,它们都是彼此协作,共同表达系统的静态结构的。
那么到底关系包含哪些内容呢?下面跟随我们笔尖进入关系的学习。
关系(relationship)是事物间的关系,最长用的是四种关系:依赖(Dependency),它表示类之间的使用关系;泛化(Generalization),它表示一般和特殊的关系;关联(Association),它表示对象之间的结构关系;实现(Realization),它是规格说明和其实现之间的关系。
二、基本内容
1、依赖(Dependency)
基本概念:依赖是两个(或两组)模型元素间的语义关系,依赖双方某一个模型元素的变化比影响到另一模型元素。
UML中的表示:一条有方向的虚线,指向被依赖的对象。
实例:
2、泛化
基本概念:泛化就是我们常说的继承,它是指一般事务(父类)和该事物的特殊种类(子类)之间的关系,子类从父类继承属性和方法,而子类通常还可以添加新的属性和方法或者修改父类的某些属性和方法。
UML中表示:从子类指向父类的空心箭头表示。
实例
3、关联
基本概念:关联是描述一组具有共同结构特征、行为特征、关系和语义的链接。它是一种结构关系,指明一个事物的对象与另一个事物的对象间的关系。
UML中表示:用一条实线表示。
实例:
4、实现
基本概念:实现是规格说明和其实现间的关系,它表示不结成结构而值继承行为。
UML中表示:用一个带空心三角形的箭头来表示。
实例:
5、几种关系对比:
1)聚合VS组成
概念对比:
都是表示整体和部分的关系,聚合中的部分脱离整体还可以存在,而组成中的部分脱离整体后不能独立存在。
实例对比:
2)包含VS扩展
概念对比:包含表示一个用例使用了另一个用例的行为或功能,而扩展是表示一个用例描述了一个基本功能,而另一个用例则描述了该功能的特殊情况。
实例对比:
3)关联VS聚合
概念对比:关联强调是两个对立的对象之间的关系,而聚合强调的是对象A是对象B的一部分。
实例对比:
4)综合对比:
几种关系表项的强弱关系:
泛化=实现>组合>聚合>关联>依赖
三、小结
UML中的关系是比较重要的内容,也是比较难的一部分,在我们画图的时候,最难的事情就是抽象和寻找关系,但是当我们深刻的理解了每一个关系之后,会对以后的画图提供很大的帮助,当然这是理论上的理解和随机想出的例子,还没有运用到画图中,我们还需要在实践中巩固这些知识!