Dagger2: вернуть не одноэлементный объект из одноэлементного компонента - PullRequest
1 голос
/ 02 июля 2019

как я могу вернуть не одиночные объекты из @Singleton компонента?

Например, у меня есть:

ApplicationComponent.kt

@Singleton
@Component(modules = [ApplicationModule::class])
interface ApplicationComponent() {
    fun database(): Database
    fun model(): Model
}

Model.kt

class Model @Inject constructor()

Я хочу, чтобы каждый раз возвращался другой экземпляр Model, наоборот, Database, который будет одноэлементным и предоставлен ApplicationModule.kt

1 Ответ

1 голос
/ 02 июля 2019

Если вы предоставите Model как

@Singleton
class Model @Inject constructor()

или как

@Provides
@Singleton
fun provideModel() = Model()

это будет синглтон.

Если вы не аннотируете какого-либо провайдера с помощью @Singleton, @Reusable или любой другой области действия, вы всегда будете создавать новый экземпляр.

...