在ddd实践中,CRUD方法是否应放在模型对象中

gam*_*ein 2 java domain-driven-design crud

我正在尝试实现域驱动设计,代码的基本结构包括以下对象:

Action->Facade->
Service
Model
Repository
Run Code Online (Sandbox Code Playgroud)

您认为CRUD方法应该放在模型中,如下所示:

order.save(new order())
Run Code Online (Sandbox Code Playgroud)

或者像下面这样放在外立面:

addOrderFacade.save(new order())
Run Code Online (Sandbox Code Playgroud)

Mik*_*eSW 7

"保存"或"删除"方法属于存储库.通常,Save由服务或命令处理程序调用(如果您使用基于命令的方法来更新域).从CRUD保存处理CU,D得到自己的方法,R部分是有趣的.

如果R表示'GetEntity'以便更新它,那么它可以是与Save一样处理的域存储库(存在多个存储库)的一部分.

但是,如果要读取显示,基本只是将结果返回给用户的查询,则应使用专用于查询的不同存储库,以及简化的只读模型.可以从控制器甚至UI调用此repo.