IoC容器和域驱动设计

Ken*_*ran 15 domain-driven-design dependency-injection ioc-container

我一直在寻找在域驱动设计中使用IoC容器的指导.不幸的是,埃文的书没有触及这个主题.我能在互联网上找到的唯一重要指导方针就在这里.

马洛维奇的许多观点都是常识,但我担心其中的一些.他建议IoC容器应保留用于仅解析服务,并且使用IoC容器来解析域依赖性是一个坏主意.但是,他没有用任何例子来支持这个断言.他简单地说它是事实.

然后他继续说混合IoC容器和工厂是没有意义的.这似乎与他的第一点相矛盾.事实上,如果IoC容器不能解析域依赖关系,那么它们应该如何解决呢?埃文的书清楚地指出工厂是合乎逻辑的选择.

我很感激您对此事的任何意见.对于DDD和IoC,我都是新手.我正在努力掌握IoC和DDD如何协同工作.

Mar*_*kan 3

在我看来,他关于在域模型中不使用 IoC 容器的观点是正确的。我自己也遵循这种做法。基本思想是服务可能包含基础设施依赖项,因此模拟它们是明智的。领域实体没有这些,因此模拟它们并不重要(仍然对接口进行编码是很好的做法)。

领域实体的工厂不应该位于 IoC 容器中,但服务的工厂应该位于 IoC 容器中。基本上,您可以在服务中引用实体工厂。耦合不是很紧密。

关于 IoC 的好读物可以在Billy McCafferty 的博客文章“依赖注入 101”中找到