Руководства
Связь Repository с UseCase Forge
Преобразование изменений Repository в обычные Command без связи пакетов на уровне зависимостей.
v0.1.0-dev.1Продвинутый уровеньark_data_layer
Связь Repository с UseCase Forge
Binding принадлежит Application-слою, потому что именно он решает, какое изменение данных становится каким Command.
dart
final class CatalogBinding {
CatalogBinding(CatalogRepository repository, CatalogUseCase useCase)
: _subscription = repository.stream.listen(
(data) => useCase.add(CatalogChanged(data)),
);
final StreamSubscription<CatalogData> _subscription;
Future<void> close() => _subscription.cancel();
}
Прямая подписка обрабатывает replay текущего значения. Используйте stream.skip(1), если Command должны создаваться только для будущих commit.
Слушатель не выполняет асинхронную бизнес-логику. Admission, debounce, throttle, группировка Execution, отмена, ошибки и диагностика остаются в UseCase Forge.