在 DDD 分层架构中,应用层是否仅用于处理对外暴露的接口?
对于不对外提供接口的场景,例如通过第三方接口获取 K 线数据并持久化到数据库,这类逻辑应当归属于哪一层?
这是个很典型的 DDD 分层架构中常见的困惑
在 DDD 分层架构(通常是四层:UI/接口层、应用层、领域层、基础设施层)里,各层的职责大概是这样:
- 接口层 (Interface / API / UI):对外提供访问入口,比如 HTTP API、RPC、CLI。
- 应用层 (Application):编排业务用例,定义系统行为的流程,调用领域对象或服务。它本身不实现业务规则,只是协调。
- 领域层 (Domain):业务核心逻辑和规则,实体、值对象、领域服务、聚合根。
- 基础设施层 (Infrastructure):技术实现,比如数据库访问、第三方服务调用、消息队列等。
回答
应用层是否仅用于处理对外暴露的接口?
不是。
应用层并不是“只为对外接口存在”,它的核心作用是编排用例。任何系统行为——无论是 对外 API 请求触发,还是 内部定时任务、消费消息、调用第三方接口——都应该通过应用层来发起和组织。
举个例子(获取 K 线并保存数据库)
比如你有个需求:
「定时任务调用第三方行情接口 → 获取 K 线数据 → 存到数据库」。
在 DDD 分层里可以这样放:
-
触发点(可能是定时任务 scheduler、消息队列 consumer

最低0.47元/天 解锁文章
1242

被折叠的 条评论
为什么被折叠?



