1

1Activity显示. 我有另一个添加更新项目。 NotesRecyclerViewActivity

目前他们都使用同一个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吗?

4

1 回答 1

1

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

为这两个活动使用一个 ViewModel 并没有错,但请考虑 ViewModel应该对view建模
在 ViewModel 中有一些 Activity A 不使用的功能,以及 Activity B 不使用的其他功能,与 ViewModel 应该是 View 功能模型的想法并不相符。

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

于 2019-01-18T10:26:29.543 回答