Скоуп (Scope)
Scope управляет деревом модулей и экземпляров зависимостей. Скоупы могут быть вложенными (иерархия родитель-дочерний), обеспечивая модульную компоновку приложения и возможность переопределения зависимостей для отдельных контекстов.
Обычно вы работаете с корневым скоупом, но при необходимости можете создавать именованные подскоупы.
Пример
// Открыть основной/корневой скоуп
final rootScope = CherryPick.openRootScope();
// Установить пользовательский модуль
rootScope.installModules([AppModule()]);
// Получить зависимость синхронно
final str = rootScope.resolve<String>();
// Получить зависимость асинхронно
final result = await rootScope.resolveAsync<String>();
// Рекомендуется: закрывать корневой скоуп и высвобождать все ресурсы
await CherryPick.closeRootScope();
// Либо вручную вызвать dispose на любом скоупе, которым вы управляете индивидуально
// await rootScope.dispose();