gpt4 book ai didi

flutter - 你应该注入(inject)一个接口(interface)还是它的实现?

转载 作者:行者123 更新时间:2023-12-03 04:35:14 24 4
gpt4 key购买 nike

我应该注入(inject)一个接口(interface)还是它的实现?
我在教程中遇到了下面的代码,我想知道为什么要注入(inject)接口(interface)但是当你可以直接注入(inject)它的实现时将它注册为它的实现?
登录 block

@injectable
class SignInBloc extends Bloc<SignInEvent, SignInState> {
final IAuthFacade _authFacade;

SignInBloc(this._authFacade) : super(SignInState.initial());
FIREBASEAUTH
@LazySingleton(as: IAuthFacade)
class FirebaseAuthFacade implements IAuthFacade {
注入(inject)配置
gh.lazySingleton<IAuthFacade>(
() => FirebaseAuthFacade(get<FirebaseAuth>(), get<GoogleSignIn>()));

最佳答案

您希望将实现细节和依赖关系分离到特定的实现。在不同的实现之间切换会更容易,并且在测试时也更容易模拟接口(interface)。
例如,您可以将 GetIt 配置为根据接口(interface)使用不同的实现,例如开发环境、生产环境、测试环境等等。你只需要改变一条线,它就会到处改变。

关于flutter - 你应该注入(inject)一个接口(interface)还是它的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64242344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com