代码之家  ›  专栏  ›  技术社区  ›  Florian Walther

如果方法用法不重叠,两个活动是否应该有单独的视图模型?

  •  1
  • Florian Walther  · 技术社区  · 6 年前

    我有一个 Activity 那个 删除 Notes RecyclerView . 活动 那个 只有 添加 更新 新项目。

    目前他们都使用同一种方法 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;
        }
    }
    

    我应该创建两个单独的 ViewModels 活动 ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bam    5 年前

    那要看你是否愿意去 更清晰的关注点分离

    两个活动都使用一个ViewModel并没有错,但是请考虑ViewModel是 应该是的 模型 这个
    在ViewModel中有一些函数不被活动A使用,而其他函数不被活动B使用,这与 ViewModel应该是视图功能的模型 .

    我的建议是两个独立的视图模型。