【发布时间】:2014-05-29 15:40:43
【问题描述】:
在阅读了有关端口和适配器架构的不同资料后,包括 Alistair Cockburn 的 original article,我仍然不确定术语“端口”和“适配器”的确切含义——尤其是在将这些概念映射到实现工件时.
几个来源(例如this post)暗示此架构模式中的端口是最外面的工件,然后是中间层中的适配器在ports和核心的应用程序之间。
然而,在 Cockburn 的原始文章中,ports 出现在 adapter 层的外部和内部,具体取决于通信方向:
- 入站通信:“当事件从外部世界到达端口时,特定于技术的适配器将其转换为可用的过程调用或消息并将其传递给应用程序。”
- 出站通信:“当应用程序有东西要发送时,它会通过端口将其发送到适配器,适配器会创建接收技术(人工或自动)所需的适当信号。 "
实际上对我来说,“全外”方法和“内外”方法都没有意义 - 我将 ports 视为始终放置在应用程序旁边的工件,无论方向如何的沟通。 Imo 这也与 port 和 adapter 隐喻一致:例如。有一个带串口的设备,要连接另一个没有串口的设备,我需要一个适配器,从我的设备的角度适应入站和出站通信。
在实现此架构时,我会看到 ports 的定义,而不是作为我的应用程序的一部分,我会看到不同的 适配器我的应用程序的“外部”。例如。单个端口的实现可以由facade(由适配器调用以进行入站通信)和interface(由适配器实现以进行出站通信)组成。
port 和 adapter 这两个术语的正确含义是什么?如何将这些概念映射到实现工件?
更新:
找到了this article,和我的理解差不多。如果有某种共同协议,问题仍然存在。
【问题讨论】:
标签: architecture hexagonal-architecture