我正在查看DDD sample at Codeplex提供的.net的DDD示例,并尝试了解各个层如何与DDD一起使用。
通过示例,我可以看到创建新货物的时间,聚合根货物通过BookingService.BookNewCargo()调用中的存储库存储。但是,当我在BookingService中分配新路由或更改目的地(AssignCargoToRoute()或ChangeDestination()调用时)我还希望调用CargoRepository.Store()。
使用Nhibernate的代码示例,我之前没有使用过。
我错过了什么?
换句话说,如果没有调用Store(),聚合如何保持持久?
JD
答案 0 :(得分:1)
udi dahan的域事件模式已经在这里使用,有一个事件处理程序“货物已分配给路线”,它似乎存储了有问题的对象。注意domainevents类的用法以及正确的事件类,我希望能告诉你是什么触发了商店。
答案 1 :(得分:0)
以下是我写的示例应用程序:
http://clientdatasystem.codeplex.com/SourceControl/list/changesets
这是我的随行博客:
http://lucidcoding.blogspot.com/2011/10/enterprise-software-architecture-how-to.html
正如您在我的博客中所述,我并未将其描述为DDD,而是遵循域模型模式。它比货物应用程序更简单,可以更好地满足您的需求。我遵循创建和保存的模式,并且还更新并保存您期望的。我不是说我的样本比埃里克·埃文斯更好(我不敢!)但是货物申请并不是一个基本的,精简版本。