@orbit070

Вопрос про Retrofit — почему так реализовано?

Вот тут есть пример простенького класса для работы с Retrofit:

public class NetworkService {
    private static NetworkService mInstance;
    private static final String BASE_URL = "https://jsonplaceholder.typicode.com";
    private Retrofit mRetrofit;
 
    private NetworkService() {
        mRetrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
 
    public static NetworkService getInstance() {
        if (mInstance == null) {
            mInstance = new NetworkService();
        }
        return mInstance;
    }
    
    public JSONPlaceHolderApi getJSONApi() {
        return mRetrofit.create(JSONPlaceHolderApi.class);
    }
}


Мой главный вопрос в том, для чего каждый раз вызыватьcreate(JSONPlaceHolderApi.class) в методе getJSONApi()? Почему create(JSONPlaceHolderApi.class) не вызывается единожды(например в конструкторе), а каждый раз будет вызываться при вызове getJSONApi()?

И второй вопрос - если я создам несколько интерфейсов(JSONPlaceHolderApi, JSONPlaceHolderApi2, JSONPlaceHolderApi3 и тд), то мне с ними нужно работать через один и тот же экземпляр Retrofit-а, аналогично тому, как в примере реализовано для интерфейса JSONPlaceHolderApi?

Заранее спасибо.
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы