Кэширование объектов в памяти - PullRequest
1 голос
/ 07 февраля 2020

Я создаю приложение для социальных сетей. Пользователь по имени Фред может

  1. скачать собственный профиль Фреда и увидеть его на экране
  2. посмотреть на собственных последователей Фреда
  3. увидеть, что Сара следует за Фредом
  4. нажмите на имя Сары, чтобы загрузить профиль Сары
  5. посмотрите на последователей Сары
  6. увидите, что Фред следует за Сарой
  7. нажмите на имя Фреда, чтобы снова увидеть его собственный профиль.

На этом этапе стек приложений в приложении выглядит следующим образом:

Фред <Сара <Фред </p>

Мне нужен экземпляр User в обоих Фредах экраны, чтобы быть тем же самым экземпляром. Поскольку User - это ChangeNotifier, если Фред вносит изменения в свою учетную запись на верхнем экране профиля Фреда и дважды нажимает кнопку Назад, то на нижнем экране профиля Фрид должны отображаться сделанные изменения.

Стек пользовательских экранов может стать сколь угодно глубоким, когда пользователь перемещается по приложению.

Моя идея состоит в том, что когда виджет UserScreen запрашивает объект User, программа сначала проверяет кэш памяти всех User объектов, используемых в настоящее время перед вызовом JSON API центрального сервера.

Я хочу, чтобы объекты User собирались мусором, когда они больше не нужны Widget.

Как мне сохранить кэш в памяти, который не требует ручного увеличения и уменьшения количества ссылок в методах виджетов initState и dispose? Есть ли что-то вроде слабого набора в Дарт, который я могу использовать?

Спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...