🐝Injector

Nesta pasta encontramos a interface das classes para injeção de dependência, de nome i_dependency_injector.dart

abstract class IDependencyInjector {
  void registerSingleton<T extends Object>(T instance);
  void registerFactory<T extends Object>(T Function() factoryFunc);
}

Serve para abstrair o uso de plugins na hora de injetar dependências. Nessa mesma pasta, criamos os arquivos para de fato implementar essa interface, segue abaixo um exemplo com uso do get it:

import 'package:get_it/get_it.dart';

import 'i_dependency_injector.dart';

class GetItInjector implements IDependencyInjector {
  final GetIt _getIt = GetIt.instance;

  @override
  void registerSingleton<T extends Object>(T instance) {
    _getIt.registerSingleton<T>(instance);
  }

  @override
  void registerFactory<T extends Object>(T Function() factoryFunc) {
    _getIt.registerFactory<T>(factoryFunc);
  }
}

Last updated