Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап Почему надо использовать DI вместо статической ссылки на Main класс ?

Тут не бред написан в общем-то. Очень даже полезные советы, но очень плохо расписаны плюсы и минусы такого подхода. Написанное здесь стоит взять на заметку людям которые пишут огромные плагины. У меня тоже есть некоторые плагины в которых бы контейнер с депенденси менеджментом ой как бы пригодился, но так как я уже сделал всё херово, то перепысывать ни сил ни времени.
Ну так как вначале темы я написал, что это быстрый ответ и быстрая справка, то цели расписать все плюсы и минусы данного подхода я не ставил. Конечно осталась еще куча плюсов и минусов, я это уже писал в теме, но расписывать их надо довольно долго, тема получилась бы очень большой, так же большинство из них были бы довольно специфичными, подходящие только для отдельных проектов, а тут я расписал минусы и плюсы которые будут всегда и во всех проектах при таком подходе
 
DI - это однозначно хорошо, но, имхо примеры из первого поста притянуты за уши. Ну то есть да, они поисывают типичные проблемы, который помогает побороть DI, но не создают впечатления, что оно нужно.
 
DI - это однозначно хорошо, но, имхо примеры из первого поста притянуты за уши. Ну то есть да, они поисывают типичные проблемы, который помогает побороть DI, но не создают впечатления, что оно нужно.
Ну тк, не буду же я вставлять километровые куски говнокода без DI, тем более я там написал представить ситуацию без DI, когда такого есть куча
 
Ну тк, не буду же я вставлять километровые куски говнокода без DI, тем более я там написал представить ситуацию без DI, когда такого есть куча
Я согласен, что нет смысла в километровых кусках кода, но отсутсвие ощущения потребности в DI - не главная проблема. Тут не представлено ни одного решения, кроме как инжект в конструктор. И если просто передавать всё через конструктор, то можно получить дебри ничуть не лучше кода без DI. Гораздо логичнее делегировать работу по созданию экземпляров классов какой-нибудь третьей стороне. И я не говорю о таких монстрах как Dagger2, но упоминание про сущестование DI-фреймфорков было бы очень кстати. Потому что без них люди будут страдать, пробрасывая экземпляр плагина сквозь всю структуру проекта.
 
Последнее редактирование:
Я согласен, что нет смысла в километровых кусках кода, но отсутсвие ощущения потребности в DI - не главная проблема. Тут не представлено ни одного решения, кроме как инжект в конструктор. И если просто передавать всё через конструктор, то можно получить дебри ничуть не лучше кода без DI. Гораздо логичнее делегировать работу по созданию экземпляров классов какой-нибудь третьей стороне. И я не говорю о таких монстрах как Dagger2, но упоминание про сущестование DI-фреймфорков юыло бы очень кстати. Потому что без них люди будут страдать, пробрасывая экземпляр плагина сквозь всю структуру проекта.
Как ты себе вообще представляешь DI фреймворк? Мб ioc container? Тогда читай обсуждение с шевчиком выше
 
Сам же писал про Guice (фу фу тонны рефлексии).
Ля ну ок, на русском просто странно как то звучит DI фреймфорк, по нормальному эт контейнером вообще именуется. Ну и вообщем то есть контейнеры и на asm. Ну и вообщем то уже писал я об контейнерах
 
Ля ну ок, на русском просто странно как то звучит DI фреймфорк, по нормальному эт контейнером вообще именуется. Ну и вообщем то есть контейнеры и на asm. Ну и вообщем то уже писал я об контейнерах
Да зачем asm. Проще сделать кодогенерацией как это делает Dagger2.
 

Поделиться этой страницей

Назад
Верх