V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
miniliuke
V2EX  ›  问与答

对 ddd 的一点疑惑

  •  
  •   miniliuke · 2020-05-15 21:30:34 +08:00 · 1483 次点击
    这是一个创建于 1435 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2020-05-16 11:48:55 +08:00
    miniliuke
        1
    miniliuke  
    OP
       2020-05-15 22:03:05 +08:00
    难道真的就该忘记设计模式?在 UserRepository 里面加一堆方法来实现不同实体互不干扰的修改......
    iffi
        2
    iffi  
       2020-05-15 22:10:52 +08:00
    你拆了干什么?就在聚合根里头做
    miniliuke
        3
    miniliuke  
    OP
       2020-05-15 22:17:17 +08:00
    @iffi 不是在聚合根里面改了以后持久化的时候,A 改了密码,B 改了地址,同时提交就会出现问题,A 一切正常,B 发现自己改的地址刷新一下又回去了.......又不可能说同时只允许一个人(修改密码或修改地址),所以必须密码和地址必须分开
    huijiewei
        4
    huijiewei  
       2020-05-16 10:04:41 +08:00 via iPhone
    dRepository 属于持久层方案了 和 DDD 无关
    miniliuke
        5
    miniliuke  
    OP
       2020-05-16 10:59:15 +08:00
    @huijiewei 但是和 DDD 有结合吧......现在这种局部更新或者局部查询的事情也什么好的解决方案么,也不可能说把 User 再去做拆分......
    huijiewei
        6
    huijiewei  
       2020-05-16 11:48:55 +08:00
    @miniliuke DDD 是 DDD,持久化是持久化,建议你先扔开持久化写 DDD 的领域代码先。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2670 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 128ms · UTC 02:00 · PVG 10:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.