2017-01-05 2 views
0

У меня есть ситуация, когда мне нужен экземпляр Retrofit, но в большинстве случаев я использую экземпляр Retrofit по умолчанию, я знаю, что для кэширования требуется использование клиента OkHttp, но мне нужен элегантный способ использовать эти два экземпляра без репликации кода.OOP, какова наилучшая практика использования двух разных модификаций в крупном проекте?

Я подумал, что могу использовать Dagger, чтобы справиться с этим, но это старый проект, и я пытаюсь улучшить его по одной части за раз. любые мысли?

ответ

0

Просто создайте два экземпляра Модернизации. Один с кешем & один без кеша.

public static <S> S createService(Class<S> yourApiClass) { 

     Retrofit retrofit = builder.client(httpClient.build()).build(); 
     return return retrofit.create(yourApiClass); 

    } 

public static <S> S createServiceWithCache(Class<S> yourApiClass) { 

      //add your cache logic here 
      return return retrofit.create(yourApiClass); 

     }