Комментарии 7
Спасибо за статью! Было бы интересно почитать про Dagger
Почему для 90% авторов статей DI – это обязательно DI-контейнер? Это же не самый употребительный и не самый полезный (хотя иногда нужный) вариант DI.
Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не Dagger2 и даже не Hilt. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте, что тут писалось. Я вполне понимаю, что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
Осталось понять, что такое DI
Я после долгих лет использования различных сервис локаторов от ВАУ какая штука пришел к пониманию что лучше жить без них. Основная проблема в сервис локаторах заключается в том, что мы перекладываем проверку корректности конфигурирования зависимостей нашего приложения на рантайм. Если по старинке создавать все объекты в образном main и передавать им все зависимости в конструкторе, то проверкой, всё ли мы передали, будет заниматься компилятор. И не будет ситуации, когда работающее приложение в какой-то момент вылетает, потому что lazy зависимость не удовлетворена.
И не нужны никакие библиотеки. Если нужен синглтон - передаешь в конструктор созданную зависимость, если нужна фабрика, передаёшь в конструктор функцию создания.
Koin: как сделать свой DI за 10 минут