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

Доброго дня. подскажите способы передачи инфы между несвязанными VM в MVVM. Задача

следующая.
Есть маршрутный лист, что то типа анкеты.
я разбил ее на 7 секций.
для простоты возьмем

1 секция - общие данные содержит
Начало
конец работы.

7 секция Коллекция работ
номер станции
прибытие
отправление

все секции побиты на отдельные VM много инфы для одной вьюхи.

задача сделать валидацию по правилам при вводе.
например в 7 секции прибытие должно быть между началом и концом работы (1 секция).

1) как мне передать данные из VM 1 секции в VM 7 секции не связывая их.
И отслеживать изменения в рантайме пиная валидатор
2) Кто должен проводить валидацию. Сама VM 7 секции? или отдельный класс ?

Пока нашел только 2 способа
1) Паттерн сообщения - создать статик объект через который передавать все изменения
и он будет рассылать подписчикам нужные сообщения. (не нравятся статик синглтон объекты)
2) Передать VM друг-другу (совсем не нравится ибо связанность большая получится)

может есть еще какие патерны передасты?

2 ответов

19 просмотров

MessageBus это называется. Но можешь глянуть сюда https://assets.ctfassets.net/9n3x4rtjlya6/2uWcg6Juw8OoCKEUW00QuQ/d2f889fa34e2b323f3ef409743456d4c/Denis_Tsvettsih._How_to_live_without_MessageBus_on_UI.pdf А вообще вся инфа же должна из модели дергаться. То есть тебе не нужно передавать инфу между vm, тебе нужно просто обновлять состояние модели. И можешь глянуть в сторону zeromq ещё.

boomsa- Автор вопроса
Anton 『被遗忘的社会』
MessageBus это называется. Но можешь глянуть сюда...

Хм. И сделать валидатор для модели. И проверять её свойства? И заполнять inotifydataerror у vm идея

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта