我很快就需要实现一个接口。界面需要在Web服务和'n'其他Web服务之间提供合同以进行公路交通控制。该公司计划首先使用单一流量控制服务进行调查/测试,然后在可用时添加更多。我可以为这个单一用例定义一个“通用”的接口,但问题是,在将来的任何时候,我们可能希望与另一个可能与我们的接口兼容或不兼容的Web服务进行通信。时间。
我可以修改Java接口,以适应API与第三方服务的差异。这也意味着更新接口的所有实现者。
我想知道是否有适合这种情况的模式。几乎就像在运行时“动态扩展接口”。或者,任何聪明地使用Java泛型都可以让我们实现一个可以与任何/所有流量控制系统一起使用的Java接口。
结论:当我们与任何其他第三方服务进行沟通时,我希望尽可能少地集成它们。
有什么想法?
答案 0 :(得分:1)
如果问题是针对相同的语义调整不同的表示,那么定义包含所需语义的自己的接口,并创建一个适配器层,将自定义表示转换为您的。这与设备驱动程序背后的原理相同。统一的客户端界面和多个适用于不同设备的适配器。
如果您希望遇到具有截然不同的语义的“设备”(流量控制服务),那么您将不得不再次拥有多种驱动程序类型,这与块设备和字符设备之间的差异完全相同。 / p>
你的情况只是众所周知和解决模式的另一个例子: - )