169 похожих чатов

Вопрос по MVVM: нормальная ли практика передавать в RecyclerView adapter

вьюмодель? Или это моветон и нужно все делать на каллбеках?

21 ответов

6 просмотров

для чего

И то и другое зависит от цели.

Remie-Hamilton Автор вопроса

ну у меня есть imageProvider в синглтоне, инициализируется в сменяемом фрагменте и в определенной ситуации. Так было бы проще его контролировать

Адаптер это ответственность вью (фрагмента) где находится рв.

Remie-Hamilton Автор вопроса

висит в репозитории

Кто висит в репо? Твоя репо в лучшем случае должна быть скопипастина в проект на десктоп (на свинге например) и должна там работать. (если мы про клин в вакууме)

Remie-Hamilton Автор вопроса

просто иначе при каждой реинициализации imageProvider придется пересоздавать адаптер, а так он бы брался из модели и все

Remie-Hamilton Автор вопроса

ну у меня это выглядит как то так: class SearchRepository(private val downloadHandler: DownloadHandler, val appBackEnd: AppBackEnd { fun getWebService() = appBackEnd.webService fun getImageProvider() = appBackEnd.webService?.imageProvider }

Remie-Hamilton Автор вопроса

сами данные получаются в WebService

Замечание по архитектуре: getWebService is nullable, печалька, потребуется везде прописывать костыли с проверкой.

Куда веб сервис улетает? Зачем это все? Зачем репо если по факту прокидывается во вью модель как я понял. А че во вью модели происходит?

Remie-Hamilton Автор вопроса

Хм, так лучше не делть? private suspend fun exportDatabase(webService: WebService?) { withContext(ioDispatcher) { try { if (webService == null) throw Exception("exportDatabase: webService is null") } }

Лучше гарантировать, что сервис non-nullable к моменту первого использования. Будет уверенность и стабильность 👍

Зачем прокидывать сервис как минимум до юзкейсов, интеракторв, вьюмоделей?

незачем . плохой код

Не ко мне вопрос 😁

Remie-Hamilton Автор вопроса

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

То есть, хз как оно работает в любой момент времени. Ну, ок...

Посмотри примеры Фернандо Цехаса в его репо. Они простые, но разделение по слоям показано хорошо

Спасибо, но это опять не ко мне.

Прости промахнулся 😂

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Карта сайта