【发布时间】:2010-07-13 12:47:05
【问题描述】:
DDD 新手问题:
我在某处的博客中读到,在一个领域驱动设计中对象彼此紧密关联的场景中,一个基于某些复杂业务规则的对象负责创建依赖对象,在这样的设计依赖注入的用处是非常有限的。
你同意吗?
【问题讨论】:
标签: dependency-injection domain-driven-design
DDD 新手问题:
我在某处的博客中读到,在一个领域驱动设计中对象彼此紧密关联的场景中,一个基于某些复杂业务规则的对象负责创建依赖对象,在这样的设计依赖注入的用处是非常有限的。
你同意吗?
【问题讨论】:
标签: dependency-injection domain-driven-design
不,我不同意。
DDD 的全部目的是达到一个表达模型,促进改变。 业务逻辑经常变化是公认的事实,因此模型必须灵活足以在面对不断变化的需求或新见解时快速改变方向。
正如 Bob 大叔在 Clean Code 中所写,启用灵活且富有表现力的 API 以快速应对前所未有的变化的唯一方法是使用松散耦合。松耦合是通过Dependency Inversion Principle实现的;从那里开始,与 DI 的联系自然而然。
当我阅读Domain-Driven Design 时,这始终是所有关于工厂的讨论背后的潜在动机,但我个人觉得这本书有点含糊。
【讨论】: