Я понимаю, что лучше всего использовать одноэлементный шаблон для модифицированного объекта. Обычно я повторно использую объект Service Interface вместо обновления.Дооснащение + кинжал + таймауты
@Provides
@Singleton
RestAPIService providesRestAPIService(Retrofit retrofit) {
return retrofit.create(RestAPIService.class);
}
Однако, есть потребность в моем проекте, где сейчас у меня есть различный KPI для каждого из различных конечных точек (API представления используют 40sec чтения тайм-аут, в то время как поисковые API, имеющие 10 сек и API для проверки, имеющих 20 сек чтение тайм-аут).
Итак, каков правильный способ использования DI для сценария расписания с разным временем чтения? Должен ли я создавать несколько экземпляров Okhttp или несколько экземпляров Retrofit или несколько экземпляров API?
а не устанавливать значения непосредственно вы можете создать класс, и в этом классе определить начальное значение тайм-аута и создать геттер и сеттер для него и установить тайм-аут через этот геттер и, когда вам нужно изменить тайм-аут установить другой тайм-аут тщательного сеттера –
Используйте фабрику, чтобы создать отдельные экземпляры okhttp для разных kpi. Использование singleton слишком рискованно, так как потенциально один поток может использовать упомянутый синглтон с одним значением тайм-аута, а другой поток использует другой тайм-аут. – t0mm13b