【发布时间】:2010-10-16 03:30:35
【问题描述】:
将领域层的所有接口(模块、模型、实体、领域服务等)全部归入基础设施层是否有意义?如果没有,创建一个“共享”项目/组件将所有这些组合到一个共享库中是否有意义?毕竟,“基础设施层”的定义包括“域、应用程序和 UI 层的共享库”。
我正在考虑围绕 DDD 层设计我的代码库:UI、应用程序、域、基础架构。这将创建 4 个项目。我的意思是,您从域层引用基础设施层。但是,如果您在域层项目中定义接口,例如 IPost,那么当您在定义 IPostRepository.Save(IPost post) 方法时必须从基础设施项目中引用域层项目时,您将有一个循环引用.因此,“在共享库中定义所有接口”的想法。
也许存储库不应该期望保存对象 (IPostRepository.Save(IPost post); 而是期望对象的参数(尽管这可能是 Save() 中的一长组参数)。鉴于,这可能是一个理想的情况,它显示了对象何时变得过于复杂,应该为它寻找额外的值对象。
想法?
【问题讨论】: