我应该注入一个接口还是它的实现?
我在教程中遇到了下面的代码,我想知道为什么要注入接口但是当你可以直接注入它的实现时将它注册为它的实现?
登录块
@injectable
class SignInBloc extends Bloc<SignInEvent, SignInState> {
final IAuthFacade _authFacade;
SignInBloc(this._authFacade) : super(SignInState.initial());
FIREBASEAUTH
@LazySingleton(as: IAuthFacade)
class FirebaseAuthFacade implements IAuthFacade {
注射配置
gh.lazySingleton<IAuthFacade>(
() => FirebaseAuthFacade(get<FirebaseAuth>(), get<GoogleSignIn>()));