我有 1 个 Activity
仅 显示 和删除 Notes
来自回收 View
。
我还有另一个 Activity
,它仅 添加 和更新 新项目。
目前他们都使用相同的 ViewModel
类:
public class NoteViewModel extends AndroidViewModel {
private NoteRepository repository;
private LiveData<List<Note>> allNotes;
public NoteViewModel(@NonNull Application application) {
super(application);
repository = new NoteRepository(application);
allNotes = repository.getAllNotes();
}
public void insert(Note note) {
repository.insert(note);
}
public void update(Note note) {
repository.update(note);
}
public void delete(Note note) {
repository.delete(note);
}
public void deleteAllNotes() {
repository.deleteAllNotes();
}
public LiveData<List<Note>> getAllNotes() {
return allNotes;
}
}
我是否应该创建 2 个单独的 ViewModels
,每个 Activity
一个?
最佳答案
这取决于您是要更简单的可维护性还是更清晰的关注点分离。
为两个 Activity 使用一个 ViewModel 并没有错,但考虑到 ViewModel 应该建模 View 。
在 ViewModel 中拥有 Activity A 未使用的某些功能,以及 Activity B 未使用的其他功能,并不真正符合ViewModel 应该是 View 功能的模型.
我的建议是两个单独的 ViewModel。
关于android - 如果方法使用不重叠,2 个 Activity 是否应该有单独的 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566536/