应在哪里设置排污港?

时间:2019-02-09 13:01:59

标签: event-handling domain-driven-design hexagonal-architecture

在使用Hexagonal Architecture的DDD实现中,应用程序可能具有端口(接口)和适配器(客户端)。在我当前的项目中,我正在实现基于事件驱动的micorservices。我具有域应用程序服务层,基础结构层和适配器层(用于命令侦听器)。 我在Google上搜索了很多实现,并且基础结构层包含适配器以及端口。 现在基础架构层将调用应用程序服务层,按照我的说法,这是错误的。

这是添加端口/命令侦听器的正确实现。

1 个答案:

答案 0 :(得分:1)

我在DDD层和六角形体系结构之间进行以下匹配:

  • 驱动程序端口是DDD应用程序服务接口,它们是六边形的左边缘。

  • 六边形的内部分为DDD应用程序服务实现和DDD域模型。

  • 从动端口(例如存储库接口或由基础结构实现的服务接口)是六边形的右边缘。

  • 六角形内部实现驱动程序端口并使用从动端口。

  • 驱动程序适配器(例如REST API控制器或Web应用程序)使用/调用驱动程序端口。驱动程序适配器是DDD的表示层。

  • 从动适配器实现了从动端口。驱动适配器是DDD的基础结构层。

如果您想看一看,这是我写的一篇介绍六角形体系结构的文章:

https://softwarecampament.wordpress.com/portsadapters

希望有帮助。