Grocker
V2EX  ›  问与答

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

  •  
  •   Grocker · Aug 27, 2025 · 1708 views
    This topic created in 288 days ago, the information mentioned may be changed or developed.

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

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

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

    应用 -> 逻辑 -> Domain


    拿 php 来说。就是

    controller-> logic -> domain

    class controller { func xx(AALogic $logic) { $logic->xx()
    notwaste
        7
    notwaste  
       Aug 27, 2025 via iPhone
    xxx 后需要 xxx 应该是事件发布吧
    itechify
        8
    itechify  
    PRO
       Aug 27, 2025
    发送事件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5229 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:13 · PVG 17:13 · LAX 02:13 · JFK 05:13
    ♥ Do have faith in what you're doing.