上篇博客介绍了表示事物的UML的基本组成元素,本篇介绍反映事物之间的关系。
在UML中,定义的模型元素之间的关系,主要包括四种:
关联关系
泛化关系
实现关系
依赖关系
一、关联关系
关联指事物之间存在的固有的牵连关系,在UML中,是对具有共同结构特征、关系和语义的对象之间的链接描述。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的关系。
在关联关系中,有两种比较特殊的关系,它们是聚合关系和组合关系。
1.关联关系的表示
关联关系是聚合关系和组合关系的统称,是比较抽象的关系;聚合关系和组合关系是更具体的关系。在UML中,使用一条实线来表示关联关系,如图1所示。
图1:关联关系
2.聚合关系
聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系。
聚合关系是一种松散的对象间关系——计算机和它的外围设备就是一例。一台计算机和它的外设之间只是很松散地结合在一起。这些外设可有可无,可以与其他计算机共享,而且没有任何意义表明它由一台特定的计算机所“拥有”——这就是聚合。
聚合的表示如图2所示,棱形端表示事物的整体部分,另一端表示事物的部分。如计算机就是整体部分,外设就是部分。
图2:聚合关系和组合关系的表示方法
3.组合关系
如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述。组合关系是一种非常强的对象间关系,例如,树和它的树叶之间的关系。树是和它的叶子紧密联系在一起,叶子完全属于这树,它们不能被其它的树所分享,并且当树死掉,叶子也会随之死去——这就是组合,组合是一种强的聚合关系。组合的表示如上图所示。
二、泛化关系
泛化关系描述了从特殊事物到一般事物之间的关系,也就是子类到父类之间的关系。从父类到子类的关系,则是特化关系。
图3:泛化关系的表示方法
三、实现关系
实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件提供的服务。实现关系是从类指向接口的带空心箭头的虚线表示。如图4所示。
图4:实现关系
四、依赖关系
有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。
图5:依赖关系
PS:本质上说,关联和泛化以及实现关系都属于依赖关系的一种,但是它们有更特别的语义,因此定义了其自己的名字和详细的语义。
- 5楼haigegegege昨天 09:48
- 路过,,蛮不错!
- Re: zhanglianhai555昨天 09:50
- 回复haigegegegen嘿嘿……
- 4楼liu_yujie2011com昨天 16:44
- 嘿嘿、、、加油!
- Re: zhanglianhai555昨天 09:46
- 回复liu_yujie2011comn谢谢
- 3楼xiaoduishenghuogo4天前 21:07
- UML中,关系很重要,必须得搞清楚。
- Re: zhanglianhai5554天前 21:07
- 回复xiaoduishenghuogon嗯
- 2楼happyITer4天前 21:05
- 解释的挺到位,图文并茂!
- Re: zhanglianhai5554天前 21:07
- 回复happyITern谢谢夸奖,还望多提宝贵意见。
- 1楼haizhijiaotianzhiya4天前 21:02
- 学习了,顶!
- Re: zhanglianhai5554天前 21:04
- 回复haizhijiaotianzhiyan多谢捧场!