版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/WSYW126/article/details/51352249 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d7e2a68c7c.css">
<div class="htmledit_views" id="content_views">
在我学习设计模式的过程中,使用了UML进行建模。
最开始我对各种关系理解的不是太清楚,在网上也搜了一些信息,现在对类图的这几种关系:依赖、关联、聚合、组合、泛化、实现进行一个介绍。
首先大家要知道两点:
1、它们关系的强弱顺序:泛化= 实现> 组合> 聚合> 关联> 依赖
2、关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。
泛化(Generalization):
泛化是对象之间耦合度最大的关系之一。它表示的是继承关系。比如:son类继承Father类。
UML类图使用带三角的实线表示,由子类指向父类。
实现(Realization):
实现是另外一个对象之间耦合度最大的关系之一。它表示的是接口和实现类的关系。比如:ImplementsClass类实现Interface类。
UML类图使用带三角的虚线表示,由子类指向父类。
组合(Composition):
组合是次于前两者的关系,它表示的是整体和部分的关系。比如人和手的关系,当人不在了,手也就没了。
UML类图使用用实心菱形+实线+箭头图示表示,菱形的一边指的的拥有者ClassA,实线所在的一边为被拥有者ClassB。
聚合(Aggregation):
聚合是次于组合的关系,它表示的是是一个对象拥有另一个对象的关系。比如:车子和轮胎之间的关系。但是车子没了轮胎还是可以存在。
UML类图使用空心菱形+实线+箭头图示表示,菱形的一边指的的拥有者ClassA,实线所在的一边为被拥有者ClassB。
关联(Association):
关联是次于聚合的关系。关联关系一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的。比如:我有一个车子,我和车子的关系就是单向关联关系。箭头指向车子。
UML类图使用一条直线箭头连接,箭头所指的方向为被关联的对象。
依赖(Dependency):
依赖是一种比关联关系更弱的关系。依赖关系存在偶然性、临时性。比如:我会开车,别人给我一辆车,我就能开。这时候车子和我的关系就是依赖关系。
UML类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。
以上绘图工具使用的是PowerDesigner 16。
备注:
转至:http://blog.youkuaiyun.com/wsyw126/article/details/51352249
作者:WSYW126