如果方法使用不重叠,2 Activity 是否应该有单独的 ViewModel?

Should 2 Activity's have separate ViewModels if the method usages don't overlap?

我有 1 Activity 显示删除 Notes 来自 RecyclerView。 我有另一个 Activity 添加更新 新项目。

目前他们都使用相同的 ViewModel class:

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 一个?

这取决于您是要更简单的可维护性还是更清晰的关注点分离

两个活动都使用一个 ViewModel 并没有错,但是考虑到 ViewModel 应该 model view
在 ViewModel 中有一些函数没有被 Activity A 使用,而其他函数没有被 Activity B 使用,这并不符合 ViewModel 应该是一个View.

功能模型

我的建议是两个单独的 ViewModel。