UML中的四大关系

前言:

        我们知道UML是一种通用的建模语言,建模能很好的帮助我们理解软件的功能和需求,在UML中画图就是我们要学习的重点。想要很好的学习UML画图就必须要理解UML中的四大关系。下面我就结合以下这张图来具体说说这四种关系。

图1
具体:
一、关联(Association)关系
        关联是描述具有共同结构特征、行为特征、关系和语义的链接。它是一种结构化的关系,它指明一个事物的对象与另一个事物的对象间的关系。在UML中关联用一条实线表示(),此外关联还可以有方向。见图2
 
 
图2
关联关系中的两个特例。
        1.聚合关系:聚合又称为聚集,它表示类与类之间的关系是整体与部分的关系。若该部分除了可以构成这个整体的一部分还可以是其他整体的一部分,那么这种聚合就是共享聚合。聚合关系用一端带有空心小菱形的直线表示,小菱形一端表示的模型元素是整体,另一端为部分。见图3

 
图3
 
        2.组合关系:若该部分是与整体共存,即整体消失了部分也就不存在了,那么这种聚合就是复合聚合,也就是组合关系。组合关系用一端带有实心小菱形的直线表示,小菱形端同样代表整体。见图4
 
 
图4
聚合与组合对比:
        相同点:都是部分与整体之间的关系。
        不同点:聚合表示的是若耦合关系,即部分脱离整体可以独立存在。而组合则为强耦合关系,整体消失了部分也就消失了。
 
二、依赖(Dependency )关系
        依赖表示的是两个或多个模型元素之间语义上的关系。其中一个模型元素是独立的,而另一个模型元素是不独立的,这个不独立的模型元素要依赖独立的模型元素。换句话说,就是依赖和被依赖的关系,而当被依赖的模型元素改变时,必然会是依赖的模型元素发生改变。见图5
 
 
图5
        在UML中定义了四种基本依赖类型,这里简单介绍一下它们的基本定义,如下:
        1、使用(Usage)依赖:使用依赖是非常直接的,它表示用户使用提供者提供的服务以实现它的行为。使用依赖是类中最常用的依赖。
        2、抽象(Abstraction)依赖:表示客户与提供者之间的关系,依赖于在不同抽象层次上的事物。
        3、授权(Permission)依赖:表示一个事物访问另一个事物的能力。提供者通过规定客户的权限,可以控制和限制对其内容访问的方法。
        4、绑定(Binding)依赖:是较高级的依赖类型,用于绑定模板以创建新的模型元素。
     
三、泛化(Generalization)关系
        泛化关系是一种存在与一般元素和特殊元素之间的分类关系。它描述的是“is a kind of”(是……的一种)关系。其中可以使用一般元素的地方可以用特殊元素的一个实例代替,但不能用一般代替特殊。泛化关系其实可以理解成是一种继承,这种继承只能使用在类型、用例和模型元素上,而不能是对象继承对象。泛化关系用一条从子类指向父类的空心三角箭头表示。见图6
 
图6
       泛化可以分为普通泛化和受限泛化,普通泛化与受限泛化的区别就在于有无约束条件。具体如下:
       1.普通泛化:没有给泛化添加约束。在UML中用一条带有空心箭头的实线来表示。
       2.受限泛化:给泛化关系附加约束条件,说明该泛化关系的使用方法或扩充方法。预定义的约束有4种,多重、不相交、完全和不完全。这些都是语义约束。
注:继承继承是指一个对象直接使用另一对象的属性和方法。即子类继承父类的属性和方法,子类还可以有自己的属性和方法。
四、实现(Realization)关系
        实现时规格说明和期实现之间的关系,它将一种模型元素与另一种模型元素连接起来。例如类和接口,其中接口只是行为的说明而不是结构或作实现。真正的实现由前一个模型元素来完成。通常会有实现的是在接口和实现它们的类或构件之间和在用例和实现它们的协作之间。在UML中,实现关系一般用一条带有空心箭头的虚线来表示。见图7
 
 
图7
       对比泛化和实现:
       泛化是类与类之间,而实现是类与接口之间。
 

总结:
      刚开始接触这四种关系的时候,觉得有点难理解,但静下心来好好看看就会清楚的多。虽然现在自己对这四种关系的理解还不是很好,还存在很多问题,但已经不像之前那样云里雾里了。对自己来说这就是进步了,希望自己能够再接再厉吧!
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值