文档章节

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

hephec
 hephec
发布于 2015/05/01 19:30
字数 780
阅读 19
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
35分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
50分钟前
0
0
ffplay 播放 rtsp地址

D:\ffmpeg\ffmpeg\bin ffplay.exe 播放rtsp地址: ffplay.exe -rtsp_transport tcp "rtsp://ip:port/pag://172.16.0.11:7302:33000000001310001748:1:SUB:TCP?cnid=2&pnid=2&auth=50&streamf......

yizhichao
56分钟前
3
0
[Jekyll] permalink -- 修改文章的链接地址

在我的个人博客中访问这篇文章时,你有注意到地址栏中显示的地址吗?它应该是这样的: https://cometeme.github.io/jekyll/2018/08/Jekyll-为文章设置永久链接.html 。打开其他的文章,可以看...

cometeme
57分钟前
0
0
启动mango数据库批处理

::启动mango数据库set dbdir=c:\mongodb\dataif not exist %dbdir% md %dbdir%c:cd c:\mongodbmongod.exe --dbpath %dbdir%...

江湖令
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部