关联注入还是依赖注入?

wal*_*lsh 5 uml dependency-injection associations

我正在研究依赖注入模式。我看过很多例子,其中一个典型的例子就是以XxxService/XxxRepository为例。但我认为,根据UML概念,类XxxRepository应该是类XxxService的关联。为什么不把这种情况称为关联注入,而仍然称为依赖注入?:)

谢谢!

2018 年 1 月 26 日更新

我目前认为这个概念dependency injection适合这个问题描述的情况。因为Association只是UML中的一种特殊的Dependency

请参考这篇文章,Martin Fowler 说:

“如果一个元素(供应商)定义的更改可能会导致另一个元素(客户)的更改,则两个元素之间存在依赖关系”。这是一种非常模糊和普遍的关系,这就是为什么 UML 对于不同形式的依赖关系有大量的构造型。

关联也意味着依赖关系,如果两个类之间存在关联,那么也存在依赖关系。

所以我现在不能接受任何答案。或者也许这个问题不是一个好问题,因为每个开发人员都有自己的观点。我正在认真考虑结束这个问题。

gra*_*ier 1

因为依赖注入是为编码而定义的,而不是为设计而定义的。

您可以使用或不使用注入来编写关联代码,但它只是一个关联。

例如,在Java中,以下代码显示了类A和实现接口IB的类B之间的关联。

class A{ @Inject private IB b; ... }

或者

Class A{ private IB b = new B(); ... }