我有1个Activity
,只能从Notes
中显示 并删除 RecyclerView
。
我还有另一个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
一个?
答案 0 :(得分:1)
这取决于您要获得更简单的可维护性还是更清晰的关注点分离。
为这两个活动使用单个ViewModel并没有错,但是请考虑将ViewModel 假定为模型 视图 。
在ViewModel中有一些活动A未使用的功能,以及其他活动B未使用的功能,与 ViewModel应该是View功能的模型的想法并不十分吻合。 >。
我的建议是两个单独的ViewModel。