GWT MVP Когда и как использовать инъекцию зависимости

StackOverflow https://stackoverflow.com/questions/4166891

  •  09-10-2019
  •  | 
  •  

Вопрос

Мы используем шаблон MVP и GWT, и мне интересно, как и когда следует использовать зависимость впрыска.

У нас есть контроллер приложения, ведущие, представления и код модели. От чтения учебника джина в http://code.google.com/p/google-gin/wiki/gintutorialial#whb. Казалось бы, вам следует использовать его на самом высоком уровне (так что в контроллере приложений).

Должен ли я использовать его для создания моих докладчиков, поэтому я могу сделать инъекцию. GetPresenter ();

Это было полезно?

Решение

В вашем приложении нет необходимого места для использования впрыска зависимости. Вы можете использовать его для одного вида или модуля или использовать его везде. В любом случае, нет причин, чтобы не сделать инжектор, доступный на самом максимально возможном уровне (т. Е. Вашему контроллеру приложений).

Что касается когда Чтобы использовать инъекцию зависимости, я бы сказал, где вы хотите проверить компонент вашей системы, не нагружая реальные зависимости тяжелых весов.

Подумайте об попытке проверить, что этот метод возвращает 3:

public int returnsThree() {
  new WeatherChecker().checkTheWeather();
  return 3;
}

Вы не сможете без загрузки и запустить эту большую проверку в погоде зависимость, означающие доступ к сети, время ожидания времени ожидания / сбоя и т. Д.

Это намного лучше:

public int returnsThree(WeatherChecker dep) {
  dep.checkTheWeather();
  return 3;
}

Таким образом, ваш тест может просто пройти в макете для этой зависимости, как:

public class MockWeatherChecker extends WeatherChecker {
  @Override
  public void checkTheWeather() {
    // do nothing
  }
}

Если компонент не имеет никаких зависимостей, что вряд ли, то вам не нужно использовать инъекцию зависимости для него.

Ведущие обычно имеют зависимость от вида, что можно легко издеваться на более быстрые тесты (тестирование с помощью Junit, а не GWT тестов). Они также могут зависеть от EventBus или что-то подобное, которое можно легко издеваться, чтобы сосредоточиться на тестировании логики докладчика.

Инъекция зависимостей состоит в том, чтобы облегчить тестирование столько же, сколько о том, чтобы отделить ответственность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top