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

Отвечая на первый вопрос > - Используется паттерн MVP. На сколько

хорошо или плохо хранить Presenter/Interactor/Repository в рамках одного Scope?

Обычно Interactor и, особенно Repository предполагают переиспользование. Поэтому их лучше хранить в каком-то более долгоживущем скопе.

6 ответов

14 просмотров

Иногда у Repository нужно хранить состояние, которое будет различно на разных экранах (например, пагинация). Аналогично Interactor и Presenter иногда могут иметь состояния, различные на разных экранах. В таком случае на сколько правильно на каждый из экранов создавать свой скоуп, который будет переживать смену конфигурации? Думал изначально сделать именно так, но прочитал статью Мацюка, где сказано про три уровня скоупа (глобальный, фичи и экрана (без переживания смены кофнфигурации)), поэтому решил обратиться к чатику

Pavel- Автор вопроса
Vitaly Peryatin
Иногда у Repository нужно хранить состояние, котор...

Обычно не очень хорошо хранить состояние в интеракторе или, тем более, репозитории. Могут быть интеракторы, через которые шарятся данные между фрагментами. Тогда он живёт в скопе активити. Но это особый случай, когда интерактор строго привязан к одному какому-то user flow. Состояние той же пагинации лучше хранить в презентере. Если использовать какие-нить lifecycle friendly библиотеки типа moxy, то там презентер переживает перевороты экрана и состояние не пропадает.

Pavel
Обычно не очень хорошо хранить состояние в интерак...

а чем плохо хранить состояние в репозитории?

Pavel- Автор вопроса
Zlatko Pušić
а чем плохо хранить состояние в репозитории?

Если репозиторий шарится между разными фичами, то это может привести к неприятным последствиям. Состояние надо как-то занулять, актуализировать. Либо при каждом использовании нужно создавать свой инстанс репозитория.

Pavel
Если репозиторий шарится между разными фичами, то ...

наверное, мы с вами про разные состояния говорим)

Pavel
Если репозиторий шарится между разными фичами, то ...

Так если у каждого экрана свой Scope как раз для того, чтобы корректно хранились состояния - все норм должно быть

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта