Подтвердить что ты не робот

Когда использовать кинжал в приложении для Android?

Я знаю, что Dagger - это среда для инъекций зависимостей, но я еще не использовал ее в своих проектах.

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

Немного о проекте. Он ориентирован на обработку изображений, и вокруг него встроена основная часть функциональности. Тем не менее, он также, вероятно, будет иметь простой бэкэнд для хранения данных.

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

4b9b3361

Ответ 1

Основные понятия:

Предположим, вы хотите протестировать свое приложение, которое имеет дело с услугой кредитной карты. Для целей тестирования вы не должны получать доступ к реальному RPCCreditCardService, поскольку ему понадобятся реальные транзакции и другие продукты, которые вы не хотите выполнять во время разработки. В этом случае вам нужно было создать клон-фальшивую услугу, которая будет имитировать то же самое, что и реальная услуга CreditCardService, но ничего не совершать. Если вы используете инфраструктуру инъекций зависимостей, вы можете определить общие задачи в зависимости и ввести ее как в поддельный, так и в реальный сервис. Это позволит свести к минимуму сложность кодирования, а также поможет сделать каждый модуль независимым.

Из документации:

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

Включение зависимостей не только для тестирования. Это также упрощает создание многоразовых, взаимозаменяемых модулей. Вы можете использовать один и тот же AuthenticationModule во всех своих приложениях. И вы можете запустить DevLoggingModule во время разработки и ProdLoggingModule в процессе производства, чтобы получить правильное поведение в каждой ситуации.

Справка:

Для более подробного понимания вы можете проверить эту дискуссию.