【问题标题】:Class structure for client library客户端库的类结构
【发布时间】:2016-04-01 03:03:29
【问题描述】:

我需要创建一些服务来同时与 Amazon S3 和 Riak CS 通信。

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

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

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

谢谢大家!

【问题讨论】:

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


    【解决方案1】:

    通常,您通过使用您自己的具有公共接口的类来包装来自各种外部服务的响应来做到这一点。您还包装服务本身,因此当您调用服务包装器时,它们都会返回您包装的数据类。然后,您将对外部服务的所有引用隔离到一个包中。这也使得添加或删除服务变得容易。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        相关资源
        最近更新 更多