六角形体系结构/端口和适配器:具有多个驱动程序适配器的应用程序配置

问题描述 投票:0回答:1

我正在寻找一些指导或最佳实践,以了解如何配置和构造符合同时支持多个(驱动程序)适配器的六角体系结构的应用程序。

我的API /应用程序层/端口代表应用程序的边界。我现在正在编写驱动程序适配器,目标是该应用程序同时支持控制台/ CLI适配器和REST适配器。

有人对配置和连接应用程序的主要组件的方法有任何想法吗?

  • 配置整个应用程序的单个主要组件:包括所有主适配器。以及加载应用程序配置。在这种情况下,它将启动REST服务并启动CLI控制台应用程序。

  • 每种主要适配器类型的单独主要组件。即。一种用于REST应用程序。一个用于CLI /控制台应用程序。我担心的是,将导致在边界内(例如API服务,存储库等)配置应用程序的大量重复。

  • 按照上述方法,但将通用配置/接线提取到共享类中。

[如果有人有任何他们可以分享的例子,那将很有趣。

干杯,

史蒂夫

configuration composition clean-architecture hexagonal-architecture
1个回答
1
投票

这是一个有趣的问题。

[从我的角度来看,尝试忠实于其作者所解释的模式,尽管也可以为一个驱动程序端口运行多个驱动程序适配器,“整个应用程序”(我们将其称为系统,因为应用程序是六边形)是在六边形的每个驱动器端口上运行的驱动程序适配器的实例,以及实现每个从动端口的从动适配器。

<< [系统的配置是为每个端口选择的适配器。运行主组件时,必须为每个端口指定所需的适配器。

也就是说,我研究了两种方法来运行系统:

((1))具有实例化从动适配器和六边形并最终实例化驱动程序适配器并运行它们的附加组件(将其命名为

main component

,合成根,启动,init或所需的任何组件) 。这样,系统架构在驱动程序侧看起来像一个应用程序容器,在驱动程序侧看起来像一个插件结构。(2)

单独运行每个驱动程序适配器

。驱动程序适配器是游戏的开始,向六边形询问驱动程序端口实例,六边形会向每个从动端口询问驱动程序适配器实例。

[关于您的示例中主要组件的问题

,根据我的方法(1),我将运行两个六角形实例,但您可能只有一个,我看不到任何问题。[我在https://softwarecampament.wordpress.com/portsadapters/写了一篇有关六角形体系结构的理论文章,现在我正在写一篇有关如何实现六角形体系结构的文章和一个代码示例。
© www.soinside.com 2019 - 2024. All rights reserved.