Руководства

Связь 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.

ARKTELOS

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