【发布时间】:2015-01-13 14:12:33
【问题描述】:
假设我有一个类似于Layered Architecture Sample 的架构。我们还假设每个大盒子都是它自己的项目。框架框和每一层将是它自己的项目。如果我们不使用 IoC 而是采用没有接口的传统分层方法,Service 会引用 Business,而 Business 会引用 Data,而所有这些都会引用 Framework。
现在的要求是对数据库进行日志记录,因此框架可能需要引用服务来访问数据。这有两个问题:
- 你现在有一个循环依赖(记住,没有接口)。如果您使用带有 IoC(依赖注入或服务定位器)和组合根的接口,大部分问题都可以解决。这是唯一的方法吗?还是您可以在没有界面的情况下以某种方式做到这一点?
- 如果您从事业务并需要记录某些内容,则必须再次跳转到服务。有没有办法只从 Presentation 而不是从没有组合根的 Service/Business/Data 跳转?
我知道我在某种程度上回答了我自己的问题,但我基本上想了解这种架构在没有 IoC 的情况下是否可行。
【问题讨论】:
标签: language-agnostic circular-dependency n-tier-architecture