洋葱架构
清洁架构的架构设计思想
清洁架构(Clean Architecture)本质上是一套架构设计的原则和思想,而不是一种严格的具体架构模式。
DDD(领域驱动设计)也可以视作为是对清洁架构原则的一种实现方式。其核心概念比如:
- 领域层:包含实体和业务规则
- 应用层:协调业务用例
- 基础设施层:技术实现
这与清洁架构的ideas是一脉相承的。
所以清洁架构只是一个抽象理念,它主张业务是架构核心,其它都是可更换的实现细节。理念本身不构成具体的架构样式或模式。
实际应用中,我们可以根据这些原则设计不同的架构,比如洋葱架构、六边形架构、DDD等等。它们都是在实践中对清洁架构这个设计思想的体现。
清洁架构是一系列架构设计的原则和理念,而真正的架构实现则有多种形式和可能性。
例如本篇就是介绍的洋葱架构
洋葱架构的具体内容
洋葱架构是清洁架构设计思想的一种具体实现
洋葱架构(Onion Architecture)的核心部分主要包括:
领域层(Domain Layer)
- 包含业务实体(Entity)、仓储接口(Repository Interface)、领域服务接口(Domain Service Interface)等。
- 这些接口和规范不依赖任何外部技术。
应用层(Application Layer)
- 包含应用服务(Application Service)实际实现,协调和组织业务流程。
- 实现和依赖领域层的接口规范。
基础技术实现层(Infrastructure Layer)
- 包含数据层、技术接口和框架等具体实现代码。
- 实现应用层定义的接口要求。
用户界面层(UI Layer)
- 包含各种面向用户的界面,依赖应用层。
总结核心特性:
- 业务内聚,面向接口编程
- 依赖关系从外向内
- 内层只定义抽象
- 外层实现内层细节
这使得业务规则独立且通用,系统容易迭代更新。