Grocker
V2EX  ›  问与答

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

  •  
  •   Grocker · Aug 27, 2025 · 2154 views
    This topic created in 440 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
    maocat
    Aug 27, 2025 via Android
    1
    套一层 biz 实现
    dzdh
    dzdh
    Aug 27, 2025
    2
    同一楼。套一层逻辑层。业务逻辑去调用逻辑层。逻辑层负责编排调度 Domain
    Grocker
    Grocker
    OP
    Aug 27, 2025
    3
    @maocat 你的意思是说在应用服务层同一级增加一个协调者服务,由协调者来调度领域服务,其他应用服务依赖这个协调者服务吗?
    Grocker
    Grocker
    OP
    Aug 27, 2025
    4
    @dzdh 这个逻辑层应该属于哪一层呢?
    Rat3
    Rat3
    Aug 27, 2025
    5
    领域事件 + 应用层事件订阅
    dzdh
    dzdh
    Aug 27, 2025❤️1
    6
    @Grocker #4

    应用 -> 逻辑 -> Domain


    拿 php 来说。就是

    controller-> logic -> domain

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