如果方法的用法不重叠,则2个Activity的视图模型应该分开吗?

时间:2018-09-29 08:19:28

标签: android viewmodel android-architecture-components android-viewmodel android-mvvm

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

1 个答案:

答案 0 :(得分:1)

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

为这两个活动使用单个ViewModel并没有错,但是请考虑将ViewModel 假定为模型 视图
在ViewModel中有一些活动A未使用的功能,以及其他活动B未使用的功能,与 ViewModel应该是View功能的模型的想法并不十分吻合。 >。

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