有没有成功使用NWorkspace模式的人?

时间:2011-04-26 05:53:39

标签: domain-driven-design ddd-repositories

我刚刚开始深入研究我的第一次域驱动设计实验,并且我正在利用NWorkspace模式。这种模式似乎很有意义,但是我无法找到很多地方的例子,这个模式已被成功使用或甚至公开记录。在我深入了解我的实现之前,我想知道是否有人使用这种模式取得了成功,或者是否有人可以指出任何在我可以从中学习的任何开源项目中使用NWorkspace的引用。还有更好或更知名的替代方案,我应该知道这个模式吗?

NWorkspace的简要背景

对于那些可能不熟悉NWorkspace的人来说,它是由Jimmy Nisson's引入的一种模式,它抽象了查询和持久性责任。在他的“应用领域驱动设计和模式”一书中,Jimmy Nilsson展示了如何使用NWorkspace抽象DDD存储库的基础结构部分,以及提供一种机制来执行与持久性相关的跨存储库原子性。

1 个答案:

答案 0 :(得分:1)

看起来他正在为读写存储库推荐单独的接口 我没有使用所描述的模式的经验,但我建议具有跨存储库事务。相反,我建议在DDD社区(Eric Evans,Udi Dahan,Greg Young)中流行的一些解决方案对我有很大的帮助:

  1. 始终在聚合根上使用预先加载。然后你不需要跨存储库原子性,并且当你持久化对象时弄清楚改变了什么更容易。
  2. 使用单独的类进行写入(即域类)和阅读(即您的viewmodel)。创建直接从数据库检索视图模型的视图模型存储库(而不是映射域对象以查看模型类)。
  3. 看看实施上述两件事是否简化了您的设计。