【发布时间】:2014-01-30 09:39:18
【问题描述】:
我正在尝试为 ASP.Net MVC 5 项目实现 Onion 架构。我已经看到一些观点认为服务应该被注入而不是实例化,如果我错了,请纠正我,Jeffery Palermo (http://jeffreypalermo.com/blog/the-onion-architecture-part-3/) 表达的想法是任何外层都应该能够直接调用任何内层。所以我的问题是
- 洋葱架构可以在没有 IOC 的情况下工作吗?如果可以,是否理想?
- 假设我们使用 IOC,如果 UI 不应该知道 领域服务,我们是否应该将相同的原则应用于领域模型 他们自己例如将模型注入 UI 而不是引用 直接?
我理解为什么有些解决方案将 IOC 应用于域服务,但直接在控制器中访问域模型。
【问题讨论】:
-
如何将模型注入 UI?你能发布一些代码示例吗?
-
洋葱架构(又名端口和适配器)的整个想法是进行依赖倒置/IoC,所以你不能没有它。
-
@Hippoom 这需要我们为每个领域模型创建接口,然后使用 Autofac 之类的 IOC 注入具体实现
-
@JoeiHuang 不,它没有。领域模型是具体的。服务、持久性应该被抽象出来,而不是领域概念和用例。
标签: asp.net-mvc design-patterns domain-driven-design inversion-of-control onion-architecture