获取API方法 - 类或模块

时间:2017-01-12 19:35:28

标签: ruby class oop module

这是一个代码设计问题。

我有一组方法可以进行API调用来获取应用程序用来执行它的任务的数据。这些方法需要相同的2-3个可变输入来获取所需的数据。我想将这些方法包装到类或模块中,但我不确定要使用什么。使用类对我来说很奇怪,因为我只是使用这些方法来使用API​​读取数据。

有什么建议吗?添加以下示例方法以供参考。我应该只使用这些方法的模块,还是将它们包装在一个类中。如果我使用类I,则可能不必为每个方法传递类似的参数。

module Client
    module Features
        def get_feature_set(client, version, locale)
          //code
        end
        def get_feature_detail(feature_id, client, version, locale)
          //code
        end
        def get_locales(client)
          //code
        end
  end
end

2 个答案:

答案 0 :(得分:1)

似乎每种方法都需要client。因此,我会考虑使用此client初始化一个类。也许有这样的界面:

而不是Client::Feature.get_locales(client)

Client.new(client).locales

而不是Client::Feature.get_feature_set(client, version, locale)

Client.new(client).feature_set(locale, version)

而不是Client::Feature.get_feature_detail(feature_id, client, version, locale)

Client.new(client).feature_detail(feature_id, locale, version)
# or
Client.new(client).feature_set(locale, version).details(feature_id)

答案 1 :(得分:0)

您可以使用常用方法为公共代码定义模块。 并致电"包括"从您的类中包含特定类中的常用方法。 (混入)