Files
cherrypick/benchmark_cherrypick/lib/di_adapters/di_adapter.dart

22 lines
1.1 KiB
Dart
Raw Normal View History

/// Абстракция для DI-адаптера с использованием функций регистрации.
///
/// Позволяет использовать любые DI-контейнеры: и модульные, и безмодульные.
abstract class DIAdapter {
/// Устанавливает зависимости с помощью одной функции регистрации.
///
/// Функция принимает выбранный DI-контейнер, задаваемый реализацией.
void setupDependencies(void Function(dynamic container) registration);
/// Резолвит (возвращает) экземпляр типа [T] (по имени, если требуется).
T resolve<T>({String? named});
/// Асинхронно резолвит экземпляр типа [T].
Future<T> resolveAsync<T>({String? named});
/// Уничтожает/отчищает DI-контейнер.
void teardown();
/// Открывает дочерний под-scope (если применимо).
DIAdapter openSubScope(String name);
}