Как управлять модернизацией между несколькими модулями Android
Мне нужно понять, как я могу управлять модернизацией между несколькими модулями в приложении для Android, где каждый модуль общается с различным сервером. Мой фокус здесь заключается в том, что все модули должны извлекать выгоду из кэша, но каждый модуль может иметь различную конфигурацию (т.е. заголовки и base_url).
Пример:
У меня есть 3 подмодуля в проекте Android. субмодуль1 зависит от субмодуля2 субмодуль3 зависит от субмодуля2
субмодуль1 общается с сервером1 субмодуль2 общается с сервером2 субмодуль3 общается с сервером3
нормально ли иметь один экземпляр дооснащения и изменять конфигурацию по требованию ИЛИ есть ли другое решение для этого?
1 ответ
В моем случае я использую разные экземпляры Retrofit и соединители для разных модулей:
public static NetworkConnector getRetrofit1() {
if (ZivaURLs.retrofitNetworkHandler1 == null) {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new GsonDateDeSerializer());
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ZivaURLs.HOST_1)
.addConverterFactory(GsonConverterFactory.create(gsonBuilder.create()))
.build();
retrofit.client().setReadTimeout(40, TimeUnit.SECONDS);
retrofit.client().setWriteTimeout(40, TimeUnit.SECONDS);
retrofit.client().setConnectTimeout(40, TimeUnit.SECONDS);
ZivaURLs.retrofitNetworkHandler1 = retrofit.create(NetworkConnector1.class);
}
return ZivaURLs.retrofitNetworkHandler1;
}
Теперь я использую разные интерфейсы Connector для каждого модуля, чтобы сделать мой код чище, и его было легко менять / обновлять.
Надеюсь, это поможет вам:)