有时候经常说或者用依赖注入,但根本不知道进一步理解依赖到底是什么?只是知道不导入这个依赖程序就无法运行。现在想想应该给我们常说的spring依赖下个定义。spring依赖就是一些jar包,而jar包又指的是压缩一些类的压缩文件,与zip压缩包不同的是jar包里面多了一个 META-INF/MANIFEST.MF 文件。综上所诉,所以可以很明确的说我们常常说的spring依赖就是类,依赖注入其实就是一些对象的注入。那么我们说的对吗?依赖就是对象?其实不然,我认为依赖只是一种关系而不是类的对象,只是开始的时候搞混了后来慢慢说的多了就变了。
--------------------以下是高手的回答----------------------------
假设有两个类,类A和类B,类A的某个成员方法的参数有类B,说明类A使用了类B,类A依赖类B。
依赖关系除了被依赖方作为依赖方的方法参数,还可能作为依赖方的方法返回值存在,这些都是依赖关系的表现形式。
关联关系是一种强依赖的关系,假设有两个类,类A和类B,类B作为类A的成员变量存在,类A也可为类B的成员变量存在,如果互为成员变量则为双向依赖,否则为单向依赖。
关联关系与依赖关系的区别在于,依赖关系是一种临时的关系,依赖关系主要体现在方法参数,当调用方法时才有关系,关联关系是一种长期的关系,主体现在成员变量,无论是否调用方法这种关系都存在。
聚合关系是一种has-a关系,假设有两个类,类A和类B,类A包含类B,类B是类A的成员变量,聚合关系和关联关系都体现在成员变量,它们的区别在于:关联关系双方是平级的,是个体和个体的关系,聚合关系双方不是平级的,是整体和部分的关系。
组合关系是一种强聚合的关系,组合关系与聚合关系的区别在于:聚合关系中部分离开整体仍可存活,组合关系中部分离开整体没有意义,比如:人由身体、四肢等部分组成 ,它们的关系为组合关系。
彻底搞清类的依赖关系、关联关系、聚合关系、组合关系 - 知乎 (zhihu.com)
---------------------本文不用于任何商业目的只是单纯的技术分享。如有侵权请告知,立马删除。