Class 客户端库的结构
Class structure for client library
我需要制作一些服务,以便与 Amazon S3 和 Riak CS 通信。
他们将处理相同的操作,例如检索图像。
由于它们 returning 不同的对象,在 S3 的情况下是 S3Object。将此设计为每个没有通用接口的 class 的正确方法是什么?
我一直在考虑如何对两者应用一个通用接口,但是 return 类型的方法是导致我出现一些问题的原因,因为它们是不同的。我可能只是在这方面出错了,可能应该将它们分开,但我希望在这里得到一些澄清。
谢谢大家!
通常,您通过将来自各种外部服务的响应与您自己的具有通用接口的 类 包装在一起来实现。您还自己包装了服务,因此当您调用服务包装器时,它们都是 return 您包装的数据 类。然后,您将对外部服务的所有引用隔离到一个包中。这也使得添加或删除服务变得容易。
要准确回答您的问题,您需要了解您在 and/or 平台上使用的语言。埃里克在他上面的回答中是正确的,将数据包装在你们自己的 class 中是处理这个问题的一种方法。但是,根据语言的不同,最终实现的细节会有所不同,添加可能的 return 值类型时所需的工作量也会有所不同。
例如,在 Java 中,一种处理方法是 return 异构容器。看看这个线程:
Type safe heterogeneous container pattern to store lists of items
我需要制作一些服务,以便与 Amazon S3 和 Riak CS 通信。
他们将处理相同的操作,例如检索图像。
由于它们 returning 不同的对象,在 S3 的情况下是 S3Object。将此设计为每个没有通用接口的 class 的正确方法是什么?
我一直在考虑如何对两者应用一个通用接口,但是 return 类型的方法是导致我出现一些问题的原因,因为它们是不同的。我可能只是在这方面出错了,可能应该将它们分开,但我希望在这里得到一些澄清。
谢谢大家!
通常,您通过将来自各种外部服务的响应与您自己的具有通用接口的 类 包装在一起来实现。您还自己包装了服务,因此当您调用服务包装器时,它们都是 return 您包装的数据 类。然后,您将对外部服务的所有引用隔离到一个包中。这也使得添加或删除服务变得容易。
要准确回答您的问题,您需要了解您在 and/or 平台上使用的语言。埃里克在他上面的回答中是正确的,将数据包装在你们自己的 class 中是处理这个问题的一种方法。但是,根据语言的不同,最终实现的细节会有所不同,添加可能的 return 值类型时所需的工作量也会有所不同。 例如,在 Java 中,一种处理方法是 return 异构容器。看看这个线程: Type safe heterogeneous container pattern to store lists of items