【发布时间】:2020-04-08 03:35:45
【问题描述】:
我是一名 Android 开发人员,刚接触干净的架构。
我有一个usecase1 类,它通过构造函数注入注入了Repository 实例:
public class usecase1 {
public final Repository repository;
@Inject
public usecase1(Repository repository) {
this.repository = repository;
}
List<String> getlist(){
return repository.list();
}
}
在数据库层我有 2 个实现。一种用于本地数据,另一种用于互联网获取数据。
在匕首中,我为在线和离线创建了 2 个带有 @named 注释的方法并返回实现。这是模块代码:
@Provides
@Singleton
@Named("Online")
Repository getRepository(){
return new OnlineRepository();
}
@Provides
@Singleton
@Named("Offline")
Repository getRepository(){
return new OfflineRepository();
}
@Provides
@Singleton
@Named("Offline")
Usecase1 getusecase1offline(@Named("Offline")Repository repository){
return new usecase1(repository);
}
@Provides
@Singleton
@Named("Online")
Usecase1 getusecase1online(@Named("Online")Repository repository){
return new usecase1(repository);
我的问题是如何注入适当的依赖。以及如何说 dagger 注入离线或在线用例。
【问题讨论】:
-
你能分享你的模块和组件代码吗?
-
@homerman 我认为这些课程并不重要。在我的 viewmodel 构造函数中,我注入了存储库。我怎么说匕首要离线或在线注入哪个存储库。