美文网首页
框架模式之 MVVM

框架模式之 MVVM

作者: Kevin_小飞象 | 来源:发表于2019-06-18 17:32 被阅读0次

    简介

    MVVM 是 Model-View-ViewModel 的简写。它本质上就是 MVC 的改进版。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。
    MVVM 模式中,一个 ViewModel 和一个 View 匹配,它没有 MVP 中的 IView 接口,而是完全的和 View 绑定,所有 View 中的修改变化,都会自动更新到 ViewModel 中,同时 ViewModel 的任何变化也会自动同步到 View 上显示。
    在 Android 中 DataBinding 帮助我们实现 MVVM,在 XML 进行数据绑定,增加了 XML 的重量,不再像以前那样仅仅是布局,均衡了各部分的职责。

    设计图

    MVVM.png

    优点

    • 解决了 MVP 大量的手动 View 和 Model 同步的问题,提供双向绑定机制。提高了代码的可维护性。
    • 简化测试。
    • 响应式编程更方便。

    缺点

    • 过于简单的图形界面显得大材小用
    • 视图状态较多,ViewModel 的构建和维护的成本都会比较高。
    • 数据绑定的声明是指令式地写在 View 的模版当中的,这些内容是没办法去打断点 debug 的。

    实例

    Android MVVM实战Demo完全解析

    小结

    看起来 MVVM 很好的解决了 MVC 和 MVP 的不足,但是由于数据和视图的双向绑定,导致出现问题时不太好定位来源,有可能数据问题导致,也有可能业务逻辑中对视图属性的修改导致。如果项目中打算用 MVVM 的话可以考虑使用官方的架构组件 ViewModel、LiveData、DataBinding 去实现 MVVM。

    相关文章

      网友评论

          本文标题:框架模式之 MVVM

          本文链接:https://www.haomeiwen.com/subject/wkcxqctx.html