Зачем нам нужна Dependency Injection для одноэлементных классов в java или Android?

Например, если я ввожу объект (Otto)Bus с помощью Dagger, тогда мне придется написать больше строк кода, чтобы указать, во сколько мест я его вставляю в интерфейсе.

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

Итак, мой вопрос: «Почему или как лучше использовать внедрение зависимостей для внедрения экземпляров класса Singleton?»


person Saleem Khan    schedule 25.04.2016    source источник


Ответы (1)


Во-первых, DI уменьшит количество шаблонов, которые вам нужно вызывать для настройки ваших экземпляров с необходимыми зависимостями. Меньше кода означает улучшенную читаемость. Платой за это является конфигурация, но для крупномасштабных проектов это того стоит.

Во-вторых, вы можете извлечь выгоду из DI, когда запускаете автоматические тесты в своем приложении. У вас будет возможность заменить стандартную одноэлементную реализацию макетом, которым вы сможете управлять и использовать для имитации различных сценариев, необходимых для охвата всех случаев.

Сказав это, я также думаю, что DI хорошо подходит только для крупномасштабных проектов Android или средних и крупных проектов EE. В противном случае это добавляет немного нежелательной сложности ИМХО.

person Danail Alexiev    schedule 25.04.2016