Рецепты
Разрешение 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 — для необязательного. Оба метода отклоняют два совместимых объекта. Не используйте порядок списка для выбора реализации.