客户端库的类结构

时间:2016-03-31 16:20:35

标签: java rest amazon-s3 api-design riak-cs

我需要制作一些能与Amazon S3和Riak CS对话的服务。

他们将处理相同的操作,例如检索图像。

由于它们返回不同的对象,在S3的情况下是一个S3Object。设计它的正确方法是在没有通用接口的情况下为每个人设置不同的类吗?

我一直在考虑如何将公共接口应用于两者,但方法的返回类型是由于它们不同而导致我出现问题的原因。我可能只是出错了,可能应该将它们分开,但我希望在这里得到一些澄清。

全部谢谢!

2 个答案:

答案 0 :(得分:1)

通常,您可以通过使用具有公共接口的类来包装来自各种外部服务的响应来执行此操作。您还可以自己封装服务,因此当您调用服务包装器时,它们都会返回包装的数据类。然后,您将对外部服务的所有引用隔离到一个包中。这也可以轻松添加或删除服务。

答案 1 :(得分:0)

准确回答您的问题需要了解您正在使用的语言和/或平台。 Eric在上面的回答中是正确的,将数据包装在你自己的一个类中是一种处理它的方法。但是,根据语言的不同,最终实施的细节会有所不同,添加可能的返回值类型所需的工作量也会有所不同。 例如,在Java中,处理此问题的一种方法是返回异构容器。看一下这个帖子: Type safe heterogeneous container pattern to store lists of items