关联与依赖区别理解(原)
动物与水是依赖关系,因为没有水动物无法活下去;关系图中虚线箭头指向水;代码中动物类中有水类中的引用(实例)
动物与气候是关联关系,因为动物不一定在这种气候(比如冷)中活下去,也可以在另外一种气候(比如热)活下去;关系图中实线箭头指向气候;代码中动物类中有气候类的引用(实例)
动物与住所是关联关系,因为动物不一定在这个住所才能活下去,可以住另外的住所;关系图中实线箭头指向住处;代码中动物类中有住所类的引用(实例)
依赖是比关联弱的关系,关联代表一种结构化的关系,体现在生成的代码中,以java为例: 若类Person单向关联指向类Car ,则在类Person中存在一个属性Car car。 若类Person依赖类Car ,则不会有这个属性,类Car 的实例可能存在于某个方法调用的参数中,或某个方法的局部变量中。
关联(Association Relationship)的代码为:
Public class Person{ Car car=new Car(); }
依赖(Dependency Relationship)的代码为:
Public class Person{ Public void buy(Car car){ } }
从以上得知关联的主要目的是要得知外部对象的属性和方法,而依赖的主要目的是将对象或类信息作为外部状态传进类中形成外蕴。
在java中关联关系是通过实例变量而实现的,同时关联可以是双向的,关联可以有一对多的关系。
依赖在java语言中体现为局部变量、方法参数,以及对静态的方法调用。依赖总是单向的。
作者:欧初权
出处:http://www.cnblogs.com/langtianya
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。