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

Народ подскажите как верно ли я организвал структуру ? 1)

Есть набор Fragment (тут а обрабатываю все реакции происходящие во View , всякие там OnClick)
2) Для каждого из них я создаю свою AndroidViewModel ( тут я храню все данные)
3) В качестве View используется XML с биндингом данных

——-
Вопросы :
1) Всякие onClick , по кнопкам и все события происходящие во View обрабатывает у меня сам Fragment , нужно ли создавать еще один слой абстракции и использовать для бизнес логики Serivice ?
2) Будет ли верным реализовывать бизнес логику во AndroidViewModel
3) Правельный ли подход создать набор AndroidViewModel в которых акумулирована логика работы с определённым набором данных , потом просто их довольно легко использовать добавиы к фрагменту.
4) Верно ли хранить ссылку на binding в нутри AndroidViewModel ?
5) Верно ли в нутри одной AndroidViewModel исполььзовать другие AndroidViewModel с другой логикой (или задача этих классов тольько хранение данных которые не умирают)

5 ответов

11 просмотров

Ну, а зачем тебе android viewmodel, это не самое лучшее решение, следует избегать использование связанных с жц компонентов во вьюмодели. Зачем хранить ссылку на биндинг во вьюмодели? Будет лик, при использовании фрагментов создавай инстанс биндинга в oncreateview и заналивай в ondestroyview. Все обновления стейтов только через дата-холдэры Для бизнес логики дели все на слои, можно ещё и на модули, зависит от сложности проекта и команды Первый вопрос не понял, что за сервис? Ты хочешь написать свой собственный а-ля биндер?

Andrei- Автор вопроса

1) binding за тем и храню в модели что бы не заморачиваться с сохранением состояния при уничтожении фрагмента или активности, если это не верно то скажите почему так не стоит делать 2) AndroidМiewModel - живёт на протяжении всего жизненного цикла активности, или фрагмента к которому она привязана в не зависимости от его текущего состояния потому и исполььзую

Касательно биндинга, смотри, ты его создал в фэктори, после создании ты передал его во вьюмодель, все. Активити умерла, конфиг сменился, ты что делаешь? У тебя в вм старый биндинг, не новый, ты его скорее все все делаешь мутабельным и открытым, все это не vm, а херь какая-то, те при каждом повороте надо обновлять его поле, чего вообще быть не должно

Andrei- Автор вопроса

после onDestroy умирает и ViewModel

ViewModel умирает в onCleared()

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта