注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

糊涂小妹

一个矫情到不行的文艺小青年

 
 
 

日志

 
 

UML中关联、泛化、依赖、实现的强弱关系  

2014-12-10 13:52:36|  分类: uml |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
类之间的关系种类:Association(关联)、 Generalization(泛化)Dependency(依赖)Realization(实现)Aggregation(聚合)Composition(合成或组合) 其中,Aggregation(聚合)Composition(合成)属于Association(关联),是特殊的Association关联关系。

一、泛化

1、说明

     泛化是一种继承关系,如果一个类A的所有属性和操作能被另一个类B所继承,则类B不仅可以包含自己独有的属性,而且可以包含类A的属性和操作。继承是类与类或者类与接口之间最常见的关系。

2、例图

            

3、表现

 父类 父类实例=new 子类();

泛化中子类直接继承了父类的属性和操作所以它的关系最强。

二、关联

1、说明

   对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系

2、例图

3、表现

关联关系时使用实例变量来实现的。


三、聚合关系(aggregation)

1.说明:

关联关系的一种,是强的关联关系。聚合是整体和个体的关系。聚合关系也是通过实例变量实现的。例如汽车、发动机、轮胎,一个汽车对象由一个发动机对象,四个轮胎对象组成。

当类之间有整体-部分关系的时候,我们就可以使用组合或者聚合。

2.例图

3.表现

与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。

四、组合关系(合成关系)(composition)
1.说明:

合成关系也是关联关系的一种,是比聚合关系更强的关系。合成关系是不能共享的。例如人有四肢、头等。

表示类之间整体和部分的关系,组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。

 2.例图

五、依赖

1、说明

   对于两个相对独立的对象,当一个对象负责构造另一个对象的实例时,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系

  与关联关系不同的是,依赖关系是以参数变量的形式传入到依赖类中。

  依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不太明显的时候(可以说是“use”了那个类),可以把这种关系看成是依赖

2、例图

       

3、表现

    依赖关系表现在局部变量,方法的参数,以及对静态方法的调用。

六实现

实现(realization)是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种地方要遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。在图形上,把一个实现关系画成一条带有空心箭头的虚线。   
应是与泛化等同的。


.综合比较

这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;但总的来说,后几种关系所表现的强弱程度依次为:泛化=实现>组合>聚合>关联>依赖

  评论这张
 
阅读(73)| 评论(18)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017