对于类之间的关联性的关系中,依赖,关联,聚合,以及组合 这四种关联关系有时不是很能区分开来,特别是依赖,关联,聚合这三种(组合因为是最强耦合的关联关系,其实还是相对好辨别的),在此从网上找一个摘抄,记下来:
组合:(composition): 关联藕合度 :最强 关键字: 生命周期
组合表示:contains-a关系,是一种强烈的包含关系。组合类负责被组合类的生命周期(两者生命周期相同),是非常强的藕合关系。
图像: 局部 <————————◆ 整体
聚合:(Aggregation) : 关联藕合度: 较强于一般关联
表示has-a的关系,是一种不稳定的包含关系。有整体与局部的关系,并且没有了整体,局部也可以存在,较强于一般 关联
图像: 局部 <————————◇ 整体
关联: (Association) : 关联藕合度: 一般
对象之间一种引用关系, 这种关系通常使用类的属性表达。关联又分为一般关联,聚合关联与组合关联
图像: 被动方 < ————————— 主动方
依赖: (Dependency) 关联偶合度:最弱
对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量,函数参数,返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。
图像: 被动方< - - - - - - - - - - - - - - 主动方
箭头都是 主动方 指向 被动方
参考:
http://www.uml.org.cn/oobject/201104212.asp 讲得很不错的