загруженные данные?
Нет нельзя. Точнее физически можно, но не стоит. Стоит немного подробнее раскрыть что такое синглтон, ведь это класс, который сам гарантирует, что будет создан только Один объект данного класса. Это неправильно и неправославно. Что мы можем сделать с этим ? Переложить ответственность на другой класс. Но как это сделать чтобы это было красиво ? Нужно использовать что-то такое, что используется во флаттере. Например прикольно сделать репозиторий похожим на MediaQuery или на Theme. То есть у него должен метод of, который нам предоставит доступ к нашему репозиторию, используя контекст. Значит нужно заюзать inheritedWidget (чтобы не писать код руками в vscode можно использовать расширение flutter snippets ) Но куда положить ? Конечно в самый корень абстрактного(воображаемого) дерева виджетов. Но тут есть нюанс, ведь репозитории могут зависеть от других репозиториев или каких-то других сервисов. Например NewsRepository требует AuthRepository. Тогда стоит немного подумать и разместить NewsRepository ниже чем AuthRepository.
Но и дальше возникает нюанс. Ведь может такая ситуация, когда нужно превентивно защититься от создания NewsRepository, до тех пор, пока пользователь не станет авторизованным (например не грузить репозиторий новостей до тех пор пока мы не уверены, что у пользователя есть подписка на определенный категории новостей) . Тогда стоит поместить NewsRepository ниже BlocBuilder, который возвращает разные экрана в зависимости от состояния AuthBloc.
А можно положить на все это большой болт и как белый человек создавать инстанс репозитория когда он нужен и не хранить его вообще
Обсуждают сегодня