我正在使用分层MVVM(WPF / C#)为富客户端应用程序设计项目模板。 我有一个视图层,一个ViewModels层,一个Shell / Application / Presenter的可选层,到目前为止一切都很好。
但是,当涉及到下面的“模型”层时,我发现它实际上由更多的子层组成......
DomainRules
或DomainLogic(或BusinessLogic)层; DomainEntities
图层。理想情况下,这一层是持久性无知的; DomainRules
图层需要从某处加载DomainEntities,因此我打算使用Repository
; DataAccess
层(DAL)。这些考虑因素直接引发了一些“持久”的怀疑,即:
DomainEntities
和DomainRules
彼此直接相关,但目前他们之间有Repository
。 Repository
本身与域名有不同的顾虑。那么,我应该将DomainEntities
放在Repository
下面的一个图层中,让DomainRules
只知道Repository
(后者会知道DomainEntities
})?
如果我选择将域驱动设计与丰富的域模型一起使用(在对象中放置丰富的行为),那么将DomainRules
和DomainEntities
视为单独的子对象是否仍然有意义 - 他们之间有Repository
的层?我应该将我的域实体划分为“丰富”的域实体,其中包含重域逻辑,而“贫血”域实体会更加持久化吗?
我希望自己清楚明白,感谢阅读!