2017-01-12 1 views
0

이것은 코드 디자인 질문입니다.API 메소드 가져 오기 - 클래스 또는 모듈

나는 응용 프로그램이 작업을 수행하는 데 사용할 데이터를 가져 오기 위해 API 호출을하는 일련의 메소드가 있습니다. 이 방법은 필요한 데이터를 가져 오기 위해 동일한 2-3 가지 변수 입력이 필요합니다. 나는이 메소드들을 클래스 나 모듈로 마무리하고 싶지만 무엇을 사용해야할지 모르겠습니다. 내가 API를 사용하여 데이터를 읽는 데 단지이 방법을 사용하고 있기 때문에 클래스를 사용하는 것이 나에게 이상하다고 느낀다.

제안 사항? 참조 용으로 아래 샘플 메소드를 추가했습니다. 난 그냥 이런 식으로 모듈을 사용하거나 클래스로 래핑해야할까요? 클래스를 사용하는 경우 각 메소드에 대해 유사한 매개 변수를 전달하지 않아도됩니다.

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 
+0

귀하의 설명 조언을 너무 모호 에. 지금까지 가지고있는 메소드의 예와 호출 방법을 추가 할 수 있습니까? –

+0

샘플 코드가 추가되었습니다. @AlexWayne, 죄송합니다. –

답변

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) 
0

공통 코드에 대한 모듈을 일반적인 방법으로 정의 할 수 있습니다. 클래스의 "include"를 호출하여 특정 클래스에 공통 메소드를 포함시킵니다. (mixins)