geektime icon indicating copy to clipboard operation
geektime copied to clipboard

关于仓储设计的一些疑问

Open xdqsgit opened this issue 4 years ago • 2 comments

先说下我目前对仓储的理解 仓储目的是隔离业务和 持久化操作的部分,减少因为ORM组件的变换导致的一些修改 ddd的理论建议 聚合根 才能使用仓储 问题来了 如果是只有聚合根才能使用仓储, 我需要操作根上的实体的时候怎么实现呢? 这一点我比较疑惑,一直也没找到可以参考的实现,请老师指点下🙂

xdqsgit avatar Apr 21 '20 04:04 xdqsgit

通过聚合根的id获取到聚合对象,然后操作聚合根的实体

witskeeper avatar Apr 28 '20 13:04 witskeeper

聚合根设计的指导原则是设计得尽可能小,即引用的对象(无论是实体还是值对象)要少,以完成业务要求的不变条件为基准。聚合根里的对象,外部是不能直接引用操作的,更别说随意从数据库加载了,要加载也必须通过聚合根加载,并调用聚合根提供的方法完成业务逻辑,聚合根会调用内部的对象完成处理,以继续保持业务上的不变条件。

huangchangmingxinghui avatar Jun 16 '20 11:06 huangchangmingxinghui