03.DDD六边形架构
学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid=1940048&ctype=0
文章目录
- 什么是依赖
- DDD四层架构
- 六边形架构
- 代码实现
想要详细了解六边形架构,可以看我之前的一篇文章。是对六边形架构原文的翻译:https://blog.csdn.net/Theflowerofac/article/details/132815671
什么是依赖
对于程序单元A和B
- 编译依赖:如果要编译A,必须要用到B的编译结果,则在编译期A依赖B。
- 运行依赖:在运行期,如果B不能运行,则A一定也不能运行,则A在运行期依赖B。
- 语义依赖:如果要理解A的语义,必须先理解B的语义,那么A在语义上依赖B。一般A在编译上依赖B,那么A在语义上也会依赖B,因为A使用的B的代码。
DDD四层架构
DDD原著中提到的四层架构,已经被六边形架构淘汰了。
六边形架构
在领域模型落地的时候,六边形架构是最常见的一种架构模式。
将依赖反转,得到六边形架构,又叫洋葱型架构,端口适配器架构。对于领域驱动设计来说,最关心的是从代码里分离一个领域核心模块出来,用来实现领域模型。它应该用领域的语言实现代码,不能依赖其他模块代码,应该让这个模块在程序上作为一个单独的模块独立出来,在编译期就不依赖其他的模块。在实践中为了技术实现方便,可以工具类,如日志组件gg、数学工具类等