在 DDD 分层架构中,应用层是否仅用于处理对外暴露的接口?

在 DDD 分层架构中,应用层是否仅用于处理对外暴露的接口?
对于不对外提供接口的场景,例如通过第三方接口获取 K 线数据并持久化到数据库,这类逻辑应当归属于哪一层?

这是个很典型的 DDD 分层架构中常见的困惑

DDD 分层架构(通常是四层:UI/接口层、应用层、领域层、基础设施层)里,各层的职责大概是这样:

  • 接口层 (Interface / API / UI):对外提供访问入口,比如 HTTP API、RPC、CLI。
  • 应用层 (Application):编排业务用例,定义系统行为的流程,调用领域对象或服务。它本身不实现业务规则,只是协调。
  • 领域层 (Domain):业务核心逻辑和规则,实体、值对象、领域服务、聚合根。
  • 基础设施层 (Infrastructure):技术实现,比如数据库访问、第三方服务调用、消息队列等。

回答

应用层是否仅用于处理对外暴露的接口?
不是。
应用层并不是“只为对外接口存在”,它的核心作用是编排用例。任何系统行为——无论是 对外 API 请求触发,还是 内部定时任务、消费消息、调用第三方接口——都应该通过应用层来发起和组织。


举个例子(获取 K 线并保存数据库)

比如你有个需求:
「定时任务调用第三方行情接口 → 获取 K 线数据 → 存到数据库」。

在 DDD 分层里可以这样放:

  1. 触发点(可能是定时任务 scheduler、消息队列 consumer

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值