洋葱架构

清洁架构的架构设计思想

清洁架构(Clean Architecture)本质上是一套架构设计的原则和思想,而不是一种严格的具体架构模式。

DDD(领域驱动设计)也可以视作为是对清洁架构原则的一种实现方式。其核心概念比如:

  • 领域层:包含实体和业务规则
  • 应用层:协调业务用例
  • 基础设施层:技术实现

这与清洁架构的ideas是一脉相承的。

所以清洁架构只是一个抽象理念,它主张业务是架构核心,其它都是可更换的实现细节。理念本身不构成具体的架构样式或模式。

实际应用中,我们可以根据这些原则设计不同的架构,比如洋葱架构六边形架构DDD等等。它们都是在实践中对清洁架构这个设计思想的体现。

清洁架构是一系列架构设计的原则和理念,而真正的架构实现则有多种形式和可能性。

例如本篇就是介绍的洋葱架构

洋葱架构的具体内容

洋葱架构是清洁架构设计思想的一种具体实现

洋葱架构(Onion Architecture)的核心部分主要包括:

  1. 领域层(Domain Layer)

    • 包含业务实体(Entity)、仓储接口(Repository Interface)、领域服务接口(Domain Service Interface)等。
    • 这些接口和规范不依赖任何外部技术。
  2. 应用层(Application Layer)

    • 包含应用服务(Application Service)实际实现,协调和组织业务流程。
    • 实现和依赖领域层的接口规范。
  3. 基础技术实现层(Infrastructure Layer)

    • 包含数据层、技术接口和框架等具体实现代码。
    • 实现应用层定义的接口要求。
  4. 用户界面层(UI Layer)

    • 包含各种面向用户的界面,依赖应用层。

总结核心特性:

  • 业务内聚,面向接口编程
  • 依赖关系从外向内
  • 内层只定义抽象
  • 外层实现内层细节

这使得业务规则独立且通用,系统容易迭代更新。