对 ddd 的一点疑惑

2020-05-15 21:30:34 +08:00
 miniliuke

有聚合根 User,里面有 Address 和 Password(不知道该设置为实体还是值)......我希望把 Password 和 Address 的修改分开来(即可以并发修改地址和密码互不冲突),UserRepository 无法做到细粒度的锁......所以应该是建 PasswordRepository 和 PasswordRepository 来去修改地址和密码?还是在 UserRepository 里面添加 saveXXX 方法,感觉这样就没那味了......

1549 次点击
所在节点    问与答
6 条回复
miniliuke
2020-05-15 22:03:05 +08:00
难道真的就该忘记设计模式?在 UserRepository 里面加一堆方法来实现不同实体互不干扰的修改......
iffi
2020-05-15 22:10:52 +08:00
你拆了干什么?就在聚合根里头做
miniliuke
2020-05-15 22:17:17 +08:00
@iffi 不是在聚合根里面改了以后持久化的时候,A 改了密码,B 改了地址,同时提交就会出现问题,A 一切正常,B 发现自己改的地址刷新一下又回去了.......又不可能说同时只允许一个人(修改密码或修改地址),所以必须密码和地址必须分开
huijiewei
2020-05-16 10:04:41 +08:00
dRepository 属于持久层方案了 和 DDD 无关
miniliuke
2020-05-16 10:59:15 +08:00
@huijiewei 但是和 DDD 有结合吧......现在这种局部更新或者局部查询的事情也什么好的解决方案么,也不可能说把 User 再去做拆分......
huijiewei
2020-05-16 11:48:55 +08:00
@miniliuke DDD 是 DDD,持久化是持久化,建议你先扔开持久化写 DDD 的领域代码先。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/672191

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX