文档章节

关联、组合、聚合、依赖关系比较

hephec
 hephec
发布于 2015/05/01 19:30
字数 780
阅读 20
收藏 0
    类之间的关系 种类:  Generalization( 泛化 ) Dependency( 依赖关系 ) Association( 关联关系 ) Aggregation( 聚合关系 )、 Composition( 合成关系 )
    其中Aggregation(聚合关系)Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。

       Association 关联 系表现为变量 (has a ) 。类与类之间的联接,它使一个类知道另一个类的属性和方法。例如如果 A 依赖于 B ,则 B 体现为 A 的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。



    Aggregat ion( 聚合关系 )  是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的组成部分。具体表现为,如果 A B 聚合成,表现为 A 包含有 B 的全局对象,但是 B 对象可以不在 A 创建的时刻创建。



    Composition( 组合关系 ) 是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。 Composition( 组合关系 ) 是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。如果 A B 组成,表现为 A 包含有 B 的全局对象,并且 B 对象在 A 创建的时刻创建。


Dependency(依赖关系)表现为函数中的参数(use a)。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。



来至于http://blog.csdn.net/maybehelios/archive/2008/01/12/2038685.aspx 

本文转载自:

共有 人打赏支持
hephec
粉丝 1
博文 14
码字总数 831
作品 0
朝阳
程序员
五分钟看懂UML类图与类的关系详解

在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggreg...

harries
07/09
0
0
依赖、关联、聚合和组合之间区别

在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的...

LCZ777
2014/06/29
0
0
UML关系

前言: 在学习设计模式的过程中用到了各种UML的关系,所以总结一次 内容: UML:关系(4种):泛化关系,实现关系,依赖关系,关联关系(聚合,组合) 泛化关系 是一个类与另一个类的接口,可...

cjune
2017/10/08
0
0
UML类图关系总结

在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) ...

孟飞阳
2016/07/25
965
11
UML类图几种关系的总结

在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) ...

青龙_1
2013/07/09
231
7

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
今天
1
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
4
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
16
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部