NOTE
1.4 分层架构
1. 什么是分层架构 根据系统中的角色/职责拆分和组织代码单元的常规实践 上层依赖下层,上层可以感知到下层,下层感知不到上层 2. 分层架构的演进 2.1. 一层 2.2. 两层 也叫单机架构 2.3. 三层 也叫集中式架构,C/S和B/S架构 2.4. DDD四层 2.4.1. 传统四层架构 用户
这是历史学习笔记,可能存在过时或不完整的理解。
1. 什么是分层架构
根据系统中的角色/职责拆分和组织代码单元的常规实践 上层依赖下层,上层可以感知到下层,下层感知不到上层
2. 分层架构的演进
2.1. 一层

2.2. 两层
也叫单机架构

2.3. 三层
也叫集中式架构,C/S和B/S架构

2.4. DDD四层
2.4.1. 传统四层架构

用户接口层依赖了应用层+领域层+基础层 应用层依赖了领域层+基础层 领域层依赖了基础层 这个架构基础层成了核心
2.4.2. 依赖倒置四层架构

基础层依赖用户接口层+应用层+领域层 用户接口层依赖应用层+领域层 应用层依赖领域层 这个架构领域层成了核心
2.4.3. DDD四层架构
也叫分布式微服务架构
用户接口层:外部请求的入口。主要有facade接口,DTO以及DO数据的组装和转换的代码逻辑
应用层:聚合多个领域层的逻辑。主要有事件订阅以及发布等逻辑
领域层:核心业务逻辑
基础层:为其他各层提供基础服务,包括工具类、消息队列、缓存、数据库等
代码结构:
├─application
│ ├─event
│ └─service
├─domain
│ ├─aggreate0
│ │ ├─entity
│ │ ├─event
│ │ ├─repository
│ │ └─service
│ └─aggreate1
│ ├─entity
│ ├─event
│ ├─repository
│ └─service
├─infrastructure
│ ├─config
│ └─util
│ ├─api
│ ├─driver
│ ├─eventbus
│ └─mq
└─interfaces
├─assembler
├─dto
└─facade
2.5. 六边形架构
分层架构的顶部和底部的层次从另一方面来说,就是应用的入口/出口
将抽象全部堆在domain层,将细节全部往application和infrastructure去推
一般从外到里是infrastructure、application和domain

2.6. 洋葱架构
和六边形架构一样,都通过编写适配器代码将应用核心从对基础设施的关注中解放出来,避免基础设施代码渗透到应用核心之中
