我在研究依赖注入模式。我读过许多示例,其中一个典型的示例是使用XxxService/XxxRepository作为示例。但是在我看来,根据XxxRepository的概念,类XxxService应该是类XxxService的一个关联。为什么不将这种情况称为关联注入,但仍然是依赖注入?:)
谢谢!
2018年1/26更新
目前,我认为dependency injection的概念适合于这个问题中描述的情况。因为关联只是UML中一个特殊的依赖项。
请参阅这篇文章,Martin说:
“如果对一个元素(供应商)的定义的更改可能导致另一个元素(客户端)的更改,则两个元素之间存在依赖关系”。这是一种非常模糊和普遍的关系,这就是为什么UML对于不同形式的依赖有大量的原型。
和
关联也意味着依赖,如果两个类之间存在关联,则也存在依赖关系。
所以我现在不能接受任何答案。或者这个问题不是一个好问题,因为每个开发人员都有自己的观点。我正认真考虑结束这个问题。
发布于 2018-01-05 16:39:24
因为依赖注入是为编码而定义的,而不是为设计定义的。
您可以使用或不使用注入来编写关联代码,但它是关联。
例如,在Java中,以下代码显示了类库A与B类实现接口IB之间的关联。
`class A{ @Inject private IB b; ... }` 或
`Class A{ private IB b = new B(); ... }`发布于 2018-01-06 00:21:58
,首先,:我想澄清一些关于依赖注入的提示。
在依赖注入中(参见参考文献 (第4段)):
当我们使用依赖项注入时,如下代码所示:
class A {
@Inject
private IB b;
//...
}我们实际上不知道哪个类的对象(实现IB)被注入到b中。
可能注入的类在运行时会发生变化,可能是由于一些手动或自动处理的配置而改变的。也许它会随着时间的推移而动态变化等等。
因此,我们不能使用类A和其他类之间的关联(哪个类?还是哪个物体?)
因此,,,类A和接口IB之间只有依赖关系。
在小型项目中,也许我们的项目中只有一个IB的实现。或者我们没有任何机制来进行动态注射。在这种情况下,可以使用关联。但是,在这种情况下,不需要依赖注入。
要从Martin那里找到好的解释和好的示例,请参阅参考文献2。
https://stackoverflow.com/questions/48117639
复制相似问题