在使用Hexagonal Architecture的DDD实现中,应用程序可能具有端口(接口)和适配器(客户端)。在我当前的项目中,我正在实现基于事件驱动的micorservices。我具有域应用程序服务层,基础结构层和适配器层(用于命令侦听器)。 我在Google上搜索了很多实现,并且基础结构层包含适配器以及端口。 现在基础架构层将调用应用程序服务层,按照我的说法,这是错误的。
这是添加端口/命令侦听器的正确实现。
答案 0 :(得分:1)
我在DDD层和六角形体系结构之间进行以下匹配:
驱动程序端口是DDD应用程序服务接口,它们是六边形的左边缘。
六边形的内部分为DDD应用程序服务实现和DDD域模型。
从动端口(例如存储库接口或由基础结构实现的服务接口)是六边形的右边缘。
六角形内部实现驱动程序端口并使用从动端口。
驱动程序适配器(例如REST API控制器或Web应用程序)使用/调用驱动程序端口。驱动程序适配器是DDD的表示层。
从动适配器实现了从动端口。驱动适配器是DDD的基础结构层。
如果您想看一看,这是我写的一篇介绍六角形体系结构的文章:
https://softwarecampament.wordpress.com/portsadapters
希望有帮助。