DDD的各种分层架构,都提倡以业务为核心,解耦外部依赖,分离业务复杂度和技术复杂度。
六边形架构
参考:
DDD - 六边形架构和CQRS架构_ddd六边形架构-优快云博客
https://www.cnblogs.com/jiyukai/p/14830869.html
(2005年提出)
只分2层:外六边形,内六边形(核心)
应用程序+领域模型 是一个稳定的核心,不依赖外部的任何系统。
外部调用这个服务,采用适配器隔离。
服务调用外部服务(基础设施,其他微服务),也采用适配器隔离,差别是,使用了依赖倒置(spring中的autowired),来解决依赖问题。
洋葱架构
(2008年提出)
分为4层:
- 用户接口+基础设施
- 应用服务
- 领域服务 (领域逻辑)
- 领域模型 (实体,值对象)
外层能且只能依赖内层(内层不知道外层的信息)
COLA架构
参考:COLA 4.0:应用架构的最佳实践_cola4.0-优快云博客
(COLA对自己的定义是应用架构,不是DDD架构)
(上图可以看出,融合了六边形架构和洋葱架构)
什么是架构?
什么是应用架构?
应用架构就是要解决代码要如何被组织的问题
解耦业务领域与外部依赖