Вы можете решить эту проблему, пройдя полный SRP.Вы можете создать несколько реализаций на основе XML, JSON или любым другим способом, которым реализован ваш веб-сервис.
public class WeatherInformationJsonImpl implements WeatherInformationService {
@Override
public double getTemperature(Date date, City city) {
// Get the temprature from the JSON Service
}
}
public class WeatherInformationXmlImpl implements WeatherInformationService {
@Override
public double getTemperature(Date date, City city) {
// Get the temprature from the XML Service
}
}
Затем вы можете просто создать экземпляр (ы) реализаций и внедрить его в своего потребителя сервиса.
public class WeatherInformationProvider {
private WeatherInformationService service;
public double gimmeSomeDigits(Date date, City city) {
return service.getTemperature(date, city);
}
public void setWeatherInformationService(WeatherInformationService service) {
this.service = service;
}
}
Теперь, вместо заботы о configurationVariable
, вы можете просто создать несколько реализаций и полагаться на них как на единый источник информации.