匕首,科特林和瞄准镜

时间:2019-06-10 15:43:00

标签: android kotlin dagger-2 dagger

我试图保持代码的整洁有序,因此我基本上有这种设置:

模块A

interface A {
    fun a()
}

模块B

internal class AImpl() : A {
    fun a() {
        Log.d("A", "a")
    }
}

@Module
abstract class AModule {
    @Provides
    fun provideAImpl() : A {
        return AImpl()
    }
}

所以:

  • 实施是内部的,避免其泄漏
  • 代码模块B公开了一个Dagger模块,让Dagger生成整个工厂样板

我的问题:

  • 某些应用程序将在不同的 Dagger 范围内使用此依赖项
  • 我不想让 Dagger 范围在代码中到处泄漏

我试图/正在调查的内容:

  • 覆盖AModule类和方法->不起作用
  • 公开AImpl,并将Dagger模块/组件移至其他代码模块->当前正在研究中

还有其他解决方案吗?

0 个答案:

没有答案