gpt4 book ai didi

java - 使用适配器与代理与多个提供商集成

转载 作者:行者123 更新时间:2023-11-30 08:47:04 25 4
gpt4 key购买 nike

我要与多个提供商集成,每个提供商都有不同的界面,所以我有 2 个选项,想选择其中一个:

1- 使用适配器,因此在我的应用程序内部将有接口(interface)包含所有带有我期望的参数的方法,当获取提供者 API 时,将通过从我的应用程序实现接口(interface)来为该 API 创建适配器。

2- 使用通用代理代理实现特定接口(interface)“可以是适配器选项中指定的接口(interface)”并且此代理必须调用提供者 API 并为我的应用程序提供使用它的方法

注意 1:您可能认为 2 个选项是相同的,但事实并非如此,在适配器中,您期望提供者 api 具有与您相同的方法,但名称和参数相同,但可能需要强制转换,在代理中,您从提供者方面获得更多灵 active ,因此提供者可以是 java api、REST 服务或其他任何东西。

注2:选项1中我和provider api的约定是业务共识,选项2中是必须实现的代码接口(interface)

注意 3:我可以在一个解决方案中同时使用,在我的应用程序中代理并使用适配器调用提供者 API,如果提供者 API 与我们的业务共识不匹配,我将在它上面创建另一个代理,例如:

Provider => proxy => adaptor => proxy

但我是否需要它而不是仅使用代理来包装所有这些?

最佳答案

我认为proxy 模式并不是为了让一个预期的界面适应另一个。也就是说,代理模式旨在解决与以下相关的问题:

  • 访问远程接口(interface)
  • 访问昂贵/复杂的界面

这两种情况下,代理接口(interface)访问都很方便。

另一方面,您拥有适配器 模式,旨在将实际界面适配为预期界面。它不介意您需要的转换是简单还是复杂(如您在注释 1 中所述)。

所以,如果我没有误解你的问题,我认为你更适合适配器模式。

关于java - 使用适配器与代理与多个提供商集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com