分层体系结构 - DomainRules,持久性无知的DomainEntities和存储库

时间:2013-08-21 20:30:49

标签: architecture persistence domain-driven-design layer domain-model

我正在使用分层MVVM(WPF / C#)为富客户端应用程序设计项目模板。 我有一个视图层,一个ViewModels层,一个Shell / Application / Presenter的可选层,到目前为止一切都很好。

但是,当涉及到下面的“模型”层时,我发现它实际上由更多的子层组成......

  • 我认为模型逻辑位于DomainRules或DomainLogic(或BusinessLogic)层;
  • 我需要一个定义我的实体的地方,所以我将其称为DomainEntities图层。理想情况下,这一层是持久性无知的;
  • DomainRules图层需要从某处加载DomainEntities,因此我打算使用Repository;
  • 存储库本身必须获取并检索数据到某个vanilla DataAccess层(DAL)。

这些考虑因素直接引发了一些“持久”的怀疑,即:

  • DomainEntitiesDomainRules彼此直接相关,但目前他们之间有RepositoryRepository本身与域名有不同的顾虑。那么,我应该将DomainEntities放在Repository下面的一个图层中,让DomainRules只知道Repository(后者会知道DomainEntities })?

  • 如果我选择将域驱动设计与丰富的域模型一起使用(在对象中放置丰富的行为),那么将DomainRulesDomainEntities视为单独的子对象是否仍然有意义 - 他们之间有Repository的层?我应该将我的域实体划分为“丰富”的域实体,其中包含重域逻辑,而“贫血”域实体会更加持久化吗?

我希望自己清楚明白,感谢阅读!

0 个答案:

没有答案