现在的位置: 首页 > 综合 > 正文

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

2013年10月12日 ⁄ 综合 ⁄ 共 1033字 ⁄ 字号 评论关闭

关联、组合、聚合、依赖关系比较 
http://www.blogjava.net/tinysun/archive/2009/02/21/255957.html 
范化、依赖、关联、聚合关系的一些理解 
http://www.cnblogs.com/riordan/archive/2007/06/09/777813.html 
区分java中的依赖、关联、聚集关系 
http://kisssk.iteye.com/blog/467198 
聚集 
http://baike.baidu.com/view/351119.htm 


----------------------------------------------------- 
总结: 
1.依赖(use a) 
A类中使用B类去完成相关任务,A类中无有B类这属性,可能是在方法中用到B类. 

2.关联(has a) 
关联分双向关联和单向关联,双向关联是A,B类分别持有对方的引用(有是对方的属性). 
单向关联是一方持另一方的引用. 

3.聚合[聚集] 
聚合是更强一点的关联,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分. 
例如,汽车是由轮子聚合而成,汽车报废时,轮子可以单独存在.聚合与组合的不同在于被拥有者的生命周期. 

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

5.泛化(is a) 

构造的详细顺序如下: 

类构造 (只做一次的,不论你new了多少个对象) 

1.父类的static 属性(field) 
2.父类的static块(block) 
3.子类的static field 
4.子类的static block 

实例构造 (new一次做一次) 

1.实例父类的field (非static) 
2.实例父类的初始化block (非static,是用{}括起来的那些) 
3.实例父类的默认构造器 (默认构造器是类名()这个) 
4.实例子类(这个类)的field 
5.实例子类(这个类)的初始化block 
6.实例子类(这个类)的默认构造器 /no 应该是new的那一个构造器,见Parent e = new Parent(10,12); 

抱歉!评论已关闭.