文档章节

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

hephec
 hephec
发布于 2015/05/01 19:30
字数 780
阅读 42
收藏 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
朝阳
程序员
私信 提问
加载中
请先登录后再评论。
Web开发组件管理器--Bower

Bower 是一个针对Web开发的包管理器。该工具主要用来帮助用户轻松安装CSS、JavaScript、图像等相关包,并管理这些包之间的依赖。 功能有些类似于Component。不同之处是,Component是围绕Git...

匿名
2013/02/01
1.2W
2
ORM数据访问组件--ELinq

ELinq 是一个轻量简单易用的开源Linq ORM数据访问组件,支持Nullable类型和枚举类型,对Linq的谓词提供了完美的支持,旨在让绝大部份的主流数据库都使用 Linq 来进行程序开发,让开发人员访问...

netcasewqs
2012/12/17
1.9K
2
TTOpenInAppActivity

TTOpenInAppActivity 是一个 UIActivity 的子类,为 UIActivityViewController 提供了 “Open In” 的操作支持。使用一个 UIDocumentInteractionController 来处理特定的 URL 关联的文档。...

匿名
2013/01/14
575
0
新浪微博SDK C++ codeblocks版本

新浪微博C++ SDK有如下2个地址。 weibo-sdk-util(地址为 https://code.google.com/p/weibo-sdk-util )包含cppunit,httpengine,libutil三个库 weibo-sdk(地址为 https://code.google.com/p/we......

wqvbjhc
2013/05/05
2.3K
0
Lisp的STM库--STMX

STMX 是一个高性能的 Common Lisp 库,用于实现可组合的软件事务内存机制。 事务内存是一种并行程序设计的方式,其来自于数据库管理系统(DBMS)中的事务(Transaction)概念。事务内存目前有...

匿名
2013/05/09
812
0

没有更多内容

加载失败,请刷新页面

加载更多

低代码平台,让企业开发不再是难事

近几年,企业面临数字化转型带来的压力,为了快速适应行业变化和赶超竞争对手,在高级技术人才缺乏的情况下,低代码开发获得了企业的青睐。 何为低代码开发,低代码开发平台(LCDP)是无需编...

osc_veyfyz58
13分钟前
0
0
【科创人独家】华旦天使张洁:风口是创业者的造物,投资本质是件农活

在投资界活跃着一批乘风破浪的姐姐们,江湖人敬称一声“花姐”的华旦天使投资创始人张洁是个中代表:言谈飒爽,举止利落,洞察力十足。 技术背景创业者 宜:创新、洞察 忌:轴、轻视销售 科创...

osc_lc4icfkt
15分钟前
0
0
霍尼韦尔(中国)推出数字化劳动力管理解决方案套件,以支持健康合规性和远程操作

休斯敦霍尼韦尔(中国)近期宣布了一个完整的模块化软件解决方案,以帮助工业公司在员工返回工作场所时强制遵守关键的健康和安全要求,包括体温检查和自动进入管理流程,更多信息尽在振工链。...

osc_ju8o7gji
15分钟前
0
0
萤石云摄像头调整码流,画面模糊的处理

近期在将萤石云合并到监控主机时发现画面只有750左右,原以为是海康威视主机的问题,必竟两个产品系列,后我又购买了萤石云主机进行测试还是一样。经过与售后沟通他们给出了调整画面的方案,...

osc_5h5udyht
17分钟前
0
0
Oracle 锁排查SQL

查询锁SQL或ASH报告 select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object)); 查询TX锁 set line......

osc_qgfjs4a5
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部