Может быть, я просто слепой, но я не вижу, как использовать Guice (только начиная с ним), чтобы заменить new
вызов в этом методе:Как использовать Google Guice для создания объектов, требующих параметров?
public boolean myMethod(String anInputValue) {
Processor proc = new ProcessorImpl(anInputValue);
return proc.isEnabled();
}
Для тестирования там может быть другая реализация процессора , поэтому я хотел бы избежать вызова new
и в процессе этого избавиться от зависимости от реализации.
Если мой класс мог просто запомнить экземпляр Процессора, я мог бы вводить его через конструктор, но поскольку Процессоры предназначены для неизменяемости, каждый раз мне нужен новый.
Как я мог бы это сделать с Guice (2.0)?
Япом, AssistedInject является лучшим решением. http://code.google.com/p/google-guice/wiki/AssistedInject –
Вот короткая публикация, о которой я писал. Assisted Injection - прекрасный инструмент для решения некоторых проблем, и я считаю, что это не так хорошо известно. Хорошая работа, распространяющая знания. http://ripper234.com/p/assisted-injection-in-guice/ – ripper234
Где я могу получить .jar для помощи? Он недоступен для загрузки по адресу http://code.google.com/p/google-guice/downloads/list. –