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

Доброе утро всем. Вопрос такой. Есть сервис, который хранит в

себе некоторые данные. Эти данные получаются из сети, и записываются в сервис.

Если из одного компонента будет идти сетевой запрос и там же записывать эти данные в сервис - то всё ок.

Но что если процесс "инициализации" может происходить например из нескольких разных компонентов? В каждом писать получение - передачу? Получается дублирование кода, как-то вообще не прикольно :)

Написать базовый класс имплементирующий метод инициализации и передачи данных в сервис? Но тогда наследоваться будем только от него. А если моему компоненту надо наследоваться от кого-то ещё?

Чёт запутался тут, подскажите куда копнуть.

8 ответов

22 просмотра

Зачем метод инициализации вообще? Сделайте поток, который будет грузить данные сам при подписке и всё. И почему сетевой запрос из компонента идёт?

Who-Knows Автор вопроса
Oleg Safonov
Зачем метод инициализации вообще? Сделайте поток, ...

О, есть человек. Давайте выясним кое-что. Я сильно плаваю в вопросе, поэтому буду задавать уточняющие вопросы. Вы предлагаете создать поток, который грузит данные при подписке на сервис? Про запрос из компонента. Система по типу "выбери объект и совершай действия с ним". То есть я выбираю объект, подгружаю его данные, кидаю их в сервис и потом кручу-верчу как мне надо. А в итоге сохраню этот изменённый объект. Сейчас я сделал кажется ещё хуже. В сервисе сделал метод init(), который дёргаю из нужных мне компонент. По иниту сервис кидает сетевой запрос, подгружает данные и в себе сохраняет.

Who-Knows Автор вопроса

Но тут же и вся закавыка! Если выбранный объект поменялся - мне надо целиком обновить все данные в сервисе. Ну грубо говоря проинициализировать его заново. А сервис OnInit не имеет, то есть мне всё равно надо как-то вот эту инициализацию явно вызвать из компонента. Иначе будет ситуация, когда я выбрал объект где-то, забыл дёрнуть инициализацию и у меня данные от объекта А, а я думаю, что редактирую объект В.

Зачем все заново? При изменении объекта нужно бэк дёргать?

Who Knows
Но тут же и вся закавыка! Если выбранный объект ...

Так, в сервисе не куча объектов, а всегда один только, редактируемый?

Who-Knows Автор вопроса
Oleg Safonov
Зачем все заново? При изменении объекта нужно бэк ...

Выбираем объект А. Данные сохранились в сервисе. Мы их мутируем как нам надо, в итоге либо сохраняем (отправляем на бек), либо дропаем изменения. В любом случае попадаем на таблицу выбора объектов. Выбираем объект В. Теперь в сервисе должны храниться данные от объекта В. Как они там появятся, если я явно не вызову метод сервиса - мне непонятно :(

Who Knows
Выбираем объект А. Данные сохранились в сервисе. М...

Таблица выбора объектов- Это данные из сервиса? Где хранится список объектов то?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта