gpt4 book ai didi

dagger-2 - Dagger 2 扩展接口(interface)与依赖组件

转载 作者:行者123 更新时间:2023-12-01 13:21:22 24 4
gpt4 key购买 nike

Dagger 中,我有时会看到有些组件只扩展一个接口(interface),而其他组件则使用 dependencies

例如我们有一个基础组件:

@Singleton
@Component(modules={...})
public interface BaseComponent {
...
}

版本 1:

@Singleton
@Component(modules={...})
public interface MyComponent extends BaseComponent {
...
}

和版本 2:

@CustomScope
@Component(modules={...}, dependencies= BaseComponent.class)
public interface MyComponent {
...
}

它们用于不同的场景吗?

最佳答案

如果要创建组件层次结构,标准方法是使用 subcomponents或使用 dependent components .

您可以使用接口(interface)扩展来制作测试组件。这是比扩展模块更好的解决方案。参见 here官方文档的解释:

@Component(modules = {
OAuthModule.class, // real auth
FooServiceModule.class, // real backend
OtherApplicationModule.class,
/* … */ })
interface ProductionComponent {
Server server();
}

@Component(modules = {
FakeAuthModule.class, // fake auth
FakeFooServiceModule.class, // fake backend
OtherApplicationModule.class,
/* … */})
interface TestComponent extends ProductionComponent {
FakeAuthManager fakeAuthManager();
FakeFooService fakeFooService();
}

关于dagger-2 - Dagger 2 扩展接口(interface)与依赖组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49768944/

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