0

使用 Kodein 时,如果我有 2 个模块并且module B需要使用 from 的实例module A,是导入的最佳做法module A还是module B有更好的方法?

例如,我有一个networkingModule

val networkingModule = Kodein.Module("networking") {
    bind<Retrofit>() with singleton {
        Retrofit.Builder()
            .baseUrl("https://api.example.com/")
            .build()
    }
}

并且subscribersModule需要来自以下位置的改造实例networkingModule

val subscribersModule = Kodein.Module("subscribersModule") {
    import(networkingModule)
    bind<SubscribersService>() with singleton {
        instance<Retrofit>().create(SubscribersService::class.java)
    }
}

import(networkingModule)以最好的方式添加subscribersModule吗?

4

1 回答 1

1

最后,如果您的模块在一个项目中使用,您不必强迫它们依赖。

相反,您可以将它们导入全局容器中,如下所示:

val applicationContainer = Kodein {
    import(subscribersModule)
    import(networkingModule)
    // ...
}

Kodein-DI 将为您解决依赖关系。

于 2020-04-21T07:59:26.107 回答