假设我有一个使用 IoC 实现数据访问库的业务对象库。我应该在哪里定义数据访问接口?它属于哪个图书馆?还是应该在一个单独的库中仅用于接口?
1 回答
我会在业务领域中定义接口。然后接口的实现将在一个引用业务域的库中(并且被任何应用程序上下文引用,或者被应用程序上下文引用的 IoC 库引用)。
然后用另一个实现交换一个实现只是创建另一个库并在应用程序上下文中交换引用的问题。
在 .NET 项目结构中,它看起来像这样:
Domain Logic Project
(references nothing)
Domain Models
Repository Interfaces
IoC Service Locator Interface
Repository Project
(References Domain Logic Project)
Repository Implementations
IoC Project
(References Domain Logic Project)
(References Repository Project)
IoC Service Locator Implementation
IoC Bootstrapping
Application Project
(References IoC Project ) )
(参考领域逻辑项目)
(可能需要参考存储库项目,不确定)
实现与领域模型交互的 UI