【发布时间】:2019-08-19 19:51:03
【问题描述】:
在 MyActivity 中,我正在尝试登录后端服务器。这是我尝试过的:
myViewModel = new ViewModelProvider(this, factory).get(MyViewModel.class);
myRepository = myViewModel.getMyRepository();
这是我的视图模型类:
public class MyViewModel extends ViewModel {
private MyRepository myRepository;
@Inject
MyViewModel(MyRepository myRepository) {
this.myRepository= myRepository;
}
MyRepository getMyRepository() {
return myRepository;
}
}
这是我的存储库类:
void signIn(Credential credential) {
auth.signIn(credential).addOnCompleteListener(task -> {
//Do stuff
});
}
在我的活动类中引用我的存储库类是否正确?这种做法是否会干扰 mvvm 架构模式?
我问这个是因为我想知道是否可以在活动类中保留对存储库的引用,或者只保留视图模型的引用并在视图模型中创建存储库的对象?
【问题讨论】:
-
不,视图 -> 视图模型 -> 存储库,您的视图中不应该有存储库,这违背了拥有视图模型的目的
-
@a_local_nobody 您好,感谢您的评论。请参阅我更新的问题的最后一部分。是一样的吗?
-
我会为你添加一个正确的答案,至少在我看来:) 你是否同意我完全取决于你
-
@a_local_nobody 请给我一个答案来理解这个概念。谢谢
-
好吧,这就是我的看法,如果你同意或不同意,请告诉我
标签: android mvvm android-architecture-components android-livedata android-viewmodel