0

我很快需要实现一个接口。该接口需要在一个网络服务和“n”个其他网络服务之间提供一个用于高速公路交通控制的合同。该公司计划首先使用单一的交通控制服务进行调查/测试,然后在它们可用时添加更多。我可以为这个单一用例定义一个“通用”的接口,但问题是在未来的任何时候,我们可能希望与另一个可能与我们拥有的接口兼容或不兼容的 Web 服务进行通信时间。

可以随时修改 Java 接口以适应 API 与第三方服务的差异。这也意味着更新接口的所有实现者。

我想知道是否有适合此的模式。几乎就像在运行时“动态扩展接口”。或者,任何巧妙地使用 Java 泛型,使我们能够实现一个可用于任何/所有交通控制系统的单一 Java 接口。

底线:当我们与任何其他第三方服务进行通信时,我希望我们尽可能少地集成它们。

有什么想法吗?

4

1 回答 1

1

如果问题是为相同的语义调整不同的表示,那么定义您自己的包含您需要的所有语义的接口,并创建一个适配器层,将自定义表示转换为您的。这与设备驱动程序背后的原理相同。统一的客户端界面和不同设备的多个适配器。

如果您希望遇到语义大相径庭的“设备”(流量控制服务),那么您将不得不拥有多种驱动程序类型……再次,与块设备和字符设备之间的差异完全相同的情况。

您的情况只是一个众所周知且已解决的模式的另一个例子:-)

于 2013-10-03T18:25:22.103 回答