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

golang DDD 落地问题,如何复用一段 application service 里面的逻辑?

  •  
  •   Grocker · 6 天前 · 828 次点击

    我有 3 个领域,user , feed, photo

    我有一段 upload 的逻辑,需要用户先上传照片,照片上传后更新用户相关信息的逻辑(强一致性) 这段逻辑需要协调 UserDoaminService 和 和 PhotoDoaminService 来完成这一系列操作 按理说应该是在 application service 进行编排实现 但是我需要在多个领域的应用服务都复用这段逻辑,按照 DDD 的设计,同级别之间是不应该互相依赖的,有没有什么好的解决方案,简单一点的

    8 条回复    2025-08-27 13:15:05 +08:00
    maocat
        1
    maocat  
       6 天前 via Android
    套一层 biz 实现
    dzdh
        2
    dzdh  
       6 天前
    同一楼。套一层逻辑层。业务逻辑去调用逻辑层。逻辑层负责编排调度 Domain
    Grocker
        3
    Grocker  
    OP
       6 天前
    @maocat 你的意思是说在应用服务层同一级增加一个协调者服务,由协调者来调度领域服务,其他应用服务依赖这个协调者服务吗?
    Grocker
        4
    Grocker  
    OP
       6 天前
    @dzdh 这个逻辑层应该属于哪一层呢?
    Meld
        5
    Meld  
       6 天前
    领域事件 + 应用层事件订阅
    dzdh
        6
    dzdh  
       6 天前   ❤️ 1
    @Grocker #4

    应用 -> 逻辑 -> Domain


    拿 php 来说。就是

    controller-> logic -> domain

    class controller { func xx(AALogic $logic) { $logic->xx()
    notwaste
        7
    notwaste  
       6 天前 via iPhone
    xxx 后需要 xxx 应该是事件发布吧
    oneisall8955
        8
    oneisall8955  
    PRO
       6 天前
    发送事件
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:38 · PVG 05:38 · LAX 14:38 · JFK 17:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.