0x00、什么是六边形架构?

对于六边形在全网的解释已经有很多了。对于六边形架构本身是什么,他解决了什么问题在这篇文章里就不多赘述了。这边选了两篇我觉得值得一读的文章:

Hexagonal architecture

六边形架构出处原文,认真通读一下这篇文章会发现,原文本身就已经把六边形架构是什么、解决了什么问题、怎么去实现、有哪些具体使用场景都给讲清楚了。

六边形架构[双语]

这篇是原文的译文,有中英文对照,如果懒得慢慢读可以读这一篇

深入理解六边形架构

这篇文章简明地说明了六边形是什么、解决了什么问题,最后给出了基于C++的示例。示例比较简单,而我们这篇文章就是要讨论六边形架构的具体实例是怎么样的。

0x01、六边形架构的Java示例代码

自己根据理解和经验写了一个六边形架构的示例,下面讲的东西都基于这份示例。这份SpringBoot代码不能直接跑起来,需要做一些数据库的配置等。

ZwiebelnX/hexagonal-architecture-java-example

1)项目示意图

自上而下地说明一下示例的结构。

下面这副图的样式随便搜一下六边形架构都可以看到各式各样的图解。这张图我根据Java和示例的特性做了一些小改动,使得图解和示例代码更具有映射性。

Untitled

对图解的一些概念进行一些解释

箭头方向