O Father O Satan
Много boilerplate кода
O Father O Satan
Если от него можно избавиться, то нужно делать
O Father O Satan
Проблема в том, что Dagger плодит свой бойлерплейт xD
Anonymous
что такое boilerplate код ?
O Father O Satan
код который нужно писать из раза в раз. Например при создании нового окна ты создаешь каждый раз новый класс активности, класс презентера, класс модели
O Father O Satan
Даггер подразумевает что у тебя окно будет как отдельный модуль
O Father O Satan
То есть ты плодишь ещё два класса модуля и компонента
O Father O Satan
Где ты объявляешь правила инжекта
Anonymous
то есть другими словами даггер дает возмоность написать один раз класс, а к нему подключать окна как отдельные модули?
O Father O Satan
Ага. Например ты сделал helper для sharedprefernce
O Father O Satan
и чтобы каждый раз не объявлять создать новый объект, ты делаешь в классе нечто такое: ` class Foo { @Inject SharedPreferencesHelper preferencesHelper; } `
O Father O Satan
Но тебе всё равно нужно описывать правила инжекта
O Father O Satan
Но правда один раз
O Father O Satan
Но компоненты и модули нужно создавать для каждой сущности где есть DI
Anonymous
уже более понятно, спасибо
O Father O Satan
Ну и контекст можно инжектить
O Father O Satan
Но тут спорный момент
O Father O Satan
Таким образом ты инжектишь контекст всего приложения
O Father O Satan
А это может привести к утечкам памяти
O Father O Satan
Вместо getApplicationContect() делать либо getContext(), или view.getContext()
O Father O Satan
Тогда сборщик мусора сработает когда будут уничтожены компоненты где ты вызывал получение контекста
Anonymous
👍
O Father O Satan
Хотя на счёт контекта я могу ошибаться, думаю меня поправят если я не прав
Anonymous
Дайте ссылку на флуд чат
Anonymous
Надо в шапку ее добавить
Di7aK
https://t.me/kotlin_meta
Di7aK
эта шоле?
Anonymous
Di7aK
тогда я хочу к вам в флуд чат
Anonymous
Всем привет. Как можно увидеть код внутри .so файла?
Di7aK
например никак, это уже компилированный файл
Anonymous
После декомпиляции .apk файла вообще нет никакой возможности?
Di7aK
https://reverseengineering.stackexchange.com/questions/4624/how-do-i-reverse-engineer-so-files-found-in-android-apks
Директор цирка
После декомпиляции .apk файла вообще нет никакой возможности?
Декомпилируй .so файл, но уверен, что ты там мало, что поймешь
Anonymous
А это может привести к утечкам памяти
неправда. утечка памяти возникнет если инжектить контекст активности. контекст приложения безопасен для утечек
O Father O Satan
неправда. утечка памяти возникнет если инжектить контекст активности. контекст приложения безопасен для утечек
А если активность будет уничтожена а ссылка на контекст приложения останется?)
Maryna
Ну она внутри себя может создавать экземпляры других классов вродь
Maryna
Чего? О_о
Лол, фабрика для этого и создаётся
O Father O Satan
Фабрика просто возвращает тебе нужный класс, модуль или другую сущность через один интерфейс
O Father O Satan
Но внутри себя она ничего не создаёт. По крайней мере не должна
Maryna
Она может обращаться к другим классам если они ей нужны
O Father O Satan
Декоратор может. Фабрика нет.
Алексей
Другими словами, внедрение зависимостей основывается на концепции инверсии контроля, которая говорит о том, что класс должен получать свои зависимости извне. Говоря просто, ни один класс не должен создавать экземпляр другого класса, а должен получать все экземпляры из класса конфигурации. Это статья с хабры про даггер2. А собственно чем плохо создавать экземпляр другого класса внутр класса ?
Плохо классу A создавать внутри себя экземпляр другого класса B, от которого A зависит. Плохо потому, что вы не сможете использовать класс A с другой реализацией B, потому что A всё создаёт для себя сам. Хорошо, если A говорит "мне нужен любой экземпляр класса, который реализует интерфейс B, и мне неважно, когда и как он был создан". Это принцип DIP. А для его реализации есть разные DI-фреймворки.
Maryna
Декоратор может. Фабрика нет.
Какой смысл в фабрике которая возвращает существующий объект, она же безсмысленна тогда
Алексей
DI нужен для того, чтобы ты не вызвал зависимость явно. Фишка DI что зависимости сами себя инжектят
никто сам себя не инжектит, DI-фреймворк просто берёт на себя логику создания и состыковки всех зависимостей, которые нужны вашим классам. Можно следовать принципу DIP и ручками, просто кода будет много.
O Father O Satan
В смысле что тебе придется их создавать
O Father O Satan
Но не внутри каждого класса
Anonymous
Кто знает есть чат про дизассемблер?
O Father O Satan
Какой смысл в фабрике которая возвращает существующий объект, она же безсмысленна тогда
Фабрика не возвращает объект. Она возвращает тип или класс. А как ты будешь его использовать это уже не её дело
Maryna
Фабрика не возвращает объект. Она возвращает тип или класс. А как ты будешь его использовать это уже не её дело
Я конечно не эксперт но вот в Вики написано - фабрика создаёт объект 😂😂😂
O Father O Satan
https://refactoring.guru/ru/design-patterns/factory-method
O Father O Satan
Даже в превьюхе написано
O Father O Satan
https://refactoring.guru/ru/design-patterns/abstract-factory
Larymar
Паттерн Фабричный метод предлагает создавать объекты не напрямую, используя оператор new, а через вызов особого фабричного метода. 
Alexey 🇪🇸
Alexey 🇪🇸
Вот держи)
Alexey 🇪🇸
Стикер
O Father O Satan
Кирилл
Хелп, если не сложно https://ru.stackoverflow.com/questions/906063/%d0%9d%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%8e%d1%82-%d0%bf%d1%83%d1%88%d0%b8-firebase
Vladimir
Народ, можно ли абзацный интервал установить в TextView
O Father O Satan
Чуваки. Был не прав
O Father O Satan
O Father O Satan
Реально. Мне казалось что фабрика возвращает только то что нужно создать
O Father O Satan
Почитал подробнее и посмотрел реализации
Алексей
Это радует) Лучше не рассказывать о том, как работает то, чем вы ни разу не пользовались, людей в заблуждение введете.
O Father O Satan
Да не. Проблема в том, что я реализовыал фабрику. Просто абстрактную. Но не буду в детали реализации вдаваться
O Father O Satan
Я
O Father O Satan
Посмотрел код😂там реально создание объектов внутри
O Father O Satan
Это радует) Лучше не рассказывать о том, как работает то, чем вы ни разу не пользовались, людей в заблуждение введете.
Алексей
да
O Father O Satan
Как раз с support все окей было. Хотя у нас проект относительно новый.
O Father O Satan
Хотя сразу скажу
O Father O Satan
У нас довольно специфичные устройства