【发布时间】:2011-03-21 21:56:29
【问题描述】:
假设我有一个使用 IoC 实现数据访问库的业务对象库。我应该在哪里定义数据访问接口?它属于哪个图书馆?还是应该在单独的库中仅用于接口?
【问题讨论】:
标签: interface ioc-container decoupling
假设我有一个使用 IoC 实现数据访问库的业务对象库。我应该在哪里定义数据访问接口?它属于哪个图书馆?还是应该在单独的库中仅用于接口?
【问题讨论】:
标签: interface ioc-container decoupling
我会在业务领域内定义接口。然后接口的实现将在一个引用业务域的库中(并且被任何应用程序上下文引用,或者被应用程序上下文引用的 IoC 库引用)。
然后将一个实现与另一个交换出来只是创建另一个库并在应用程序上下文中交换引用的问题。
在 .NET 项目结构中,它看起来像这样:
领域逻辑项目
(没有参考)
领域模型
存储库接口
IoC 服务定位器接口
存储库项目
(参考领域逻辑项目)
存储库实现
国际奥委会项目
(参考领域逻辑项目)
(参考资料库项目)
IoC 服务定位器实现
IoC 引导
应用项目
(参考 IoC 项目)
(参考领域逻辑项目)
(可能需要参考Repository Project,不确定)
实现与领域模型交互的 UI
【讨论】: