【UML】------四种关系

简介: 【UML】------四种关系

一、引言


在上一篇博客中介绍了UML的总结结构和事物的有关内容,事物是UML中的基本知识,那么关系就是UML中中重要的知识了,在抽象的过程中,我们会发现很少有类是独立存在的,它们都是彼此协作,共同表达系统的静态结构的。


那么到底关系包含哪些内容呢?下面跟随我们笔尖进入关系的学习。


关系(relationship)是事物间的关系,最长用的是四种关系:依赖(Dependency),它表示类之间的使用关系;泛化(Generalization),它表示一般和特殊的关系;关联(Association),它表示对象之间的结构关系;实现(Realization),它是规格说明和其实现之间的关系。


二、基本内容


1、依赖(Dependency)


基本概念:依赖是两个(或两组)模型元素间的语义关系,依赖双方某一个模型元素的变化比影响到另一模型元素。


UML中的表示:一条有方向的虚线,指向被依赖的对象。

20141029213956281.gif

实例:

20141029214059500.png

   2、泛化


基本概念:泛化就是我们常说的继承,它是指一般事务(父类)和该事物的特殊种类(子类)之间的关系,子类从父类继承属性和方法,而子类通常还可以添加新的属性和方法或者修改父类的某些属性和方法。

 

UML中表示:从子类指向父类的空心箭头表示。


1669789005178.png


实例

20141029195903653.jpg

3、关联


基本概念:关联是描述一组具有共同结构特征、行为特征、关系和语义的链接。它是一种结构关系,指明一个事物的对象与另一个事物的对象间的关系。

UML中表示:用一条实线表示。


实例:

20141029203419485.jpg

4、实现


基本概念:实现是规格说明和其实现间的关系,它表示不结成结构而值继承行为。

UML中表示:用一个带空心三角形的箭头来表示。

实例:


20141029203903031.jpg


5、几种关系对比:


1)聚合VS组成


概念对比:

都是表示整体和部分的关系,聚合中的部分脱离整体还可以存在,而组成中的部分脱离整体后不能独立存在。


实例对比:

20141029205328296.jpg

20141029205307164.jpg

  2)包含VS扩展


概念对比:包含表示一个用例使用了另一个用例的行为或功能,而扩展是表示一个用例描述了一个基本功能,而另一个用例则描述了该功能的特殊情况。

实例对比:


20141029210559250.jpg


3)关联VS聚合


概念对比:关联强调是两个对立的对象之间的关系,而聚合强调的是对象A是对象B的一部分。

实例对比:

20141029211709902.jpg

4)综合对比:

几种关系表项的强弱关系:


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


三、小结


UML中的关系是比较重要的内容,也是比较难的一部分,在我们画图的时候,最难的事情就是抽象和寻找关系,但是当我们深刻的理解了每一个关系之后,会对以后的画图提供很大的帮助,当然这是理论上的理解和随机想出的例子,还没有运用到画图中,我们还需要在实践中巩固这些知识!  

目录
相关文章
|
uml
UML中的关系
UML中的关系
143 0
|
SQL uml
UML关系-代码体现
UML关系-代码体现
56 0
|
设计模式 Java uml
UML的六种关系-系统学习四
众所周知设计模式是程序界的内功心法,那么这内功心法中包含UML图(宏观部分)、场景(场段)、代码(实操),UML图中最重要的元素当属六大关系了至此有了小编的这边总结文章。
|
测试技术 uml
【uml】之类图中的关系
【uml】之类图中的关系
48 0
|
测试技术 uml
【uml】之用例图中的关系
【uml】之用例图中的关系
300 0
|
uml
UML - UML中类与类的关系
UML - UML中类与类的关系
297 0
UML - UML中类与类的关系
|
uml
UML图中类之间的关系
类图中的关系大致一下几种 l 泛化 l 关联 l 依赖 l 组合 l 聚合  泛化 泛化是子集和超集的关系,常使用继承和实现来表示; 继承:子类到超类的实线和空心三角箭头表示 实现:子类到超类的虚线和空心三角箭头表示  依赖 依赖常常表示 一方(客户)知道另一方(提供者)并且另一方(提供者)有所改变时会对一方(客户)产生影响。
865 0
|
Java uml
UML类图关系大全
1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。
1163 0