Рецепты

Разрешение DataSource без неоднозначности

Неизменяемый DataSourceContainer и явные ошибки отсутствующих или дублирующихся контрактов.

v0.1.0-dev.1Средний уровеньark_data_layer

Разрешение DataSource без неоднозначности

dart
final sources = DataSourceContainer(<DataSource>[
  HttpCatalogDataSource(client),
  SqliteCatalogCache(database),
]);

final remote = sources.get<CatalogRemoteDataSource>();
final cache = sources.maybeGet<CatalogCacheDataSource>();

get применяется для обязательного контракта, maybeGet — для необязательного. Оба метода отклоняют два совместимых объекта. Не используйте порядок списка для выбора реализации.

ARKTELOS

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