有幸看到一篇不错的文章,出自http://student.csdn.net/space.php?uid=1394199&do=blog&id=51397&page=2#content
由于作者不允许转载,因此仅附上链接并摘取了其中部分重点内容,支持原创,坚持学习。
1、关联(Association)。指类之间的引用关系。是实体域对象之间最普遍使用最广泛的一种关系,分为一对一,一对多,多对多。在代码中如何体现?在类A中,引入类B的对象作为A类的一个属性。这样就建立了一对一或一对多关联。
2、依赖。指类之间的访问关系。A类中访问了B类的方法或属性,或者A类负责实例化B类,则可以说A类依赖于B类
3、聚合。强调整体和部分的关系,也就是has-a的关系,整体和部分是可以分离的,有各自的生命周期(是一种比较弱的联系)。
4、组合。也就整体和部分的关系,但是两种不可分割的,任何一个生命周期结束则另一个也结束(是一种强联系)。
5、泛化(Generalization)。在面向对象里面叫做"继承"关系。两种是派生关系,也可以说是父子关系,或者称为"is-a"。
补充:
其实,依赖关系和关联关系有点像,比较难分开。我认为,关联关系比较弱,仅限于对象属性的操作(get,set)。而依赖关系较强,比如方法调用(如果没有这个方法,无法完成某项活动)
附上另一篇:http://www.blogjava.net/hongzionline/archive/2007/09/27/148685.html