Вот тут есть пример простенького класса для работы с 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
?
Заранее спасибо.