Существует ли возможность отслеживать изменения объекта в Dart 2.0+?

Пытаюсь разрабатывать приложения через фреймворк Flutter и вот познакомился с StatefulWidget, теперь завис на нем. Не понимаю как правильно синхронизировать изменение целевой внешней коллекции с изменениями, которые должны происходить через State. Мою задачу выполнить можно и без использования стейтфул виджета, но хочется все сделать красиво и удобно.

Вопрос заключается в том, могу ли я подключить какой-то Observer к нужному объекту, для отслеживания его изменений? Я рылся в инглиш версии стак оверфлоу и нашел только решение для версии Dart ниже 2. Там есть нужная библиотека, но вот решения для своего проекта я так и не нашел. Попытался написать что-то сам, но моих знаний не хватило на то, чтобы понять как отследить присваивание объекта: пытался переделать класс List под свои нужды, но переписать оператор "=" нельзя, вроде как, и это стало для меня стеной.

Помогите понять как мне быть с этим. Код не вижу смысла сюда крепить так как интересует только способ решения задачи, а не ее практическое решение.


Ответы (1 шт):

Автор решения: santavital

Особенностью разработки сложного проекта на Flutter, на мой взгляд заключается в выборе Архитектуры (или проще говоря паттерна программирования) Вначале выбери что тебе ближе/либо больше подходит к конкретному проекту: MVC, MVVM, Flux, Redux, BLoC

В каждом варианте, по разному решается проблема оповещения при изменении state. Одни используют проброс callback-функции, другие подписку на stream-ы, и т.д. Думаю лучше с самого начала посмотреть как это делается правильно, и уже исходя из этого принять решение для своего проекта.

→ Ссылка