微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

关联、组合、聚合、依赖关系比较 
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); 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐