在应用域驱动设计时,依赖注入在域模型中是否有用?

时间:2010-07-13 12:47:06

标签: dependency-injection domain-driven-design

DDD新手问题:

我在某个博客中读到,在一个场景中,对象在域驱动设计中彼此紧密相关,并且基于某些复杂业务规则的一个对象负责创建依赖对象,在这样的情况下设计依赖注入的有用性非常有限。

你同意吗?

1 个答案:

答案 0 :(得分:1)

不,我不同意。

DDD的全部目的是获得促进变革表达模式。它被认为是业务逻辑经常变化,因此模型必须灵活足以在面对不断变化的需求或新见解时快速改变方向。

正如Bob叔叔在Clean Code中所写,启用灵活且富有表现力的API可以快速解决前所未有的变化的唯一方法是使用松散耦合。通过Dependency Inversion Principle实现松耦合;从那里,与DI的联系自然而然。

在我阅读Domain-Driven Design时,这一直是所有关于工厂的讨论背后的潜在动机,但我个人认为这本书有点模糊。