Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Configuration 六边形结构/端口和;适配器:具有多个驱动程序适配器的应用程序配置_Configuration_Composition_Clean Architecture_Hexagonal Architecture - Fatal编程技术网

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

Configuration 六边形结构/端口和;适配器:具有多个驱动程序适配器的应用程序配置,configuration,composition,clean-architecture,hexagonal-architecture,Configuration,Composition,Clean Architecture,Hexagonal Architecture,我正在寻找一些指导或最佳实践,以了解如何配置和构造一个符合同时支持多个(驱动程序)适配器的六边形体系结构的应用程序 我的API/应用程序层/端口代表应用程序的边界。我现在正在编写驱动程序适配器,目标是该应用程序同时支持控制台/CLI适配器和REST适配器 有人对配置和连接应用程序的主要组件的方法有什么想法吗 配置整个应用程序的单个主组件:包括所有主适配器。以及加载应用程序配置。在这种情况下,它将启动REST服务并启动CLI控制台应用程序 每种类型的主适配器都有一个单独的主组件。也就是说,一对一

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

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

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

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

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

  • 遵循上述方法,但将公共配置/连接提取到共享类中

如果任何人有任何例子,他们可以分享,这将是有趣的看到

干杯


史蒂夫这是一个有趣的问题

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

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

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

(1) 要有一个附加组件(命名为main component、composition root、startup、init或任何您想要的组件)来实例化驱动适配器和hexagon,最后实例化驱动适配器并运行它们。这样,系统架构在驱动端看起来像一个应用程序容器,在驱动端看起来像一个插件架构

(2) 独立运行每个驱动程序适配器。正是驱动程序适配器启动了游戏,向hexagon请求一个驱动程序端口实例,hexagon将向每个驱动端口请求一个驱动适配器实例

对于您的示例中关于主要组件的问题,根据我的方法(1),我将运行两个hexagon实例,但您可以只运行一个,我认为这没有任何问题


我在上写了一篇关于六边形体系结构的理论文章,现在我正在写一篇关于如何实现六边形体系结构的文章,以及一个代码示例。

谢谢。这对找到适合我的情况的最佳方法非常有帮助。