00、DDD六边形架构

279 阅读2分钟

看到很多技术博客都发表了关于六边形架构的文章,也有一些关于洋葱架构的文章,然而,这些文章洋洋洒洒几千上万文字,都讲不明白什么才是六边形架构。

新事物的产生,不会是凭空而来的,往往都会有它的历史原因。只有对过去的深刻分析,才能领悟新事物精髓。

ddd 的核心是领域,实体、值对象、存储仓库、领域服务、领域事件,这些构成了领域模型。

存储仓库设计、领域服务、领域事件,这些设计成接口,领域之间引用的是接口,接口的具体实现,可以放到应用层、基础设施层、甚至用户接口层,这便是依赖倒置!

为什么称为六边形架构?

如果把依赖关系画出来,领域模型处于中心,领域层不依赖任何层,应用层依赖领域层(对领域层的实体、领域服务、存储仓库等调用),基础设施层也依赖领域层(实现领域层的存储仓库接口、领域服务接口),防腐层也依赖领域服务(实现领域中与其实领域集成的抽象接口,adapter 即是)。应用层、基础设施层、防腐层,这三者都互不依赖,它们都与领域层产生依赖,如果把这依赖关系画到纸上并规整修饰一下,那么得到来的图,就像是两个套在一起的圈,领域层在最内的那个圈,应用层、基础设施层、防伪层,在次内的那个圈。两个圈,看上去很像洋葱吧?这便是洋葱架构的原由。

六边形架构图,领域层处于六边形中心用个圆圈表示,如果把六边形也规整一下,是否看上去和洋葱别无差异!六边形架构与洋葱架构,都是同一个意思,叫法不同而已!

故,是名而非!

六边形架构.png