DDD 应用服务 聚合根 实体 仓库调用关系求解

18-11-15 zld406504302
    

由于我的问题是和“应用服务 聚合根 实体 仓库”调用关系有关,我先阐述一下对他们的理解。

实体   :具有唯一标识的对象。

聚合根:聚合根也是一个实体,所以具有实体所有特性。不同于实体的是,聚合根包含多个实体引用。

仓库   :提供针对实体或者聚合根的CRUD操作。

应用服务:当业务需要横跨多个聚合根时,就需要在应用服务里做一次封装。

调用关系:

应用服务>仓库 实现对聚合根的CRUD操作;

聚合根   >仓库 实现对内部实体的CRUD操作;

实体依赖其他实体时,通过聚合根获取再传给实体

我是DDD初学者,请教几个问题,希望道友能多多指教,不胜感激。

       

    

banq
2018-11-15 19:14

讲得挺好。在调用关系中,聚合根是否直接调用仓储取决于具体技术条件,限制条件是:不能让仓储污染聚合根,这里有六角形架构理论,仓储只能依赖聚合根,反之不行,所以,不能把仓储引入聚合根,会造成聚合根对仓储依赖,一般都是在服务完成聚合根和仓储同步。

zld406504302
2018-11-15 21:18

感谢@banq 的解答