MVVM 架构初探

作者: MR_詹 | 来源:发表于2017-02-28 10:57 被阅读474次
    1、MVVM:Model + View + ViewModel ,当然Controller 是不能少的,而在这个设计模式中Controller 的作用就是一个”空壳”,负责将 Model 、 View、 ViewModel 关联起来,搭建成MVVM设计模式。

    如下图:


    2、MVVM 设计模式重要的一点就是搭建成一个数据的"双向绑定"

    A:ViewModel 与 View 的绑定


    这里使用Facebook封装的第三方框架:KVOControl,进行数据绑定
    Github地址:https://github.com/facebook/KVOController

    B:ViewModel 与 Model 的绑定



    3、View 与 ViewModel 的传值方式

    MVVM 与 MVC 不同的一点 View与控制中心的传值交互方式不同,MVC 更多是使用 协议的方式,将View的值传递给Control。
    在MVVM中View是拥有控制中心ViewControl 的,使用可以直接调用ViewControl的方法进行传值等操作,不需要协议等方式


    完整DEMO

    ===================== 案列分享 =====================
    1、MVVM的典型例子:个人中心(这个只是一个MVC模式,并不是MVVM设计模式)
    http://www.jianshu.com/p/81d0c573f7a8
    结论:1、Model 是相对于View的内容创建的
    2、Model 填充 View 并且 View 根据 Model 的数据决定展示的样式

    2、MVVM 功能的划分
    http://www.jianshu.com/p/865cb28c5794
    结论: 1、ViewModel 是负责定义View要显示的内容结构
    2、ViewController 即是View也是Controller
    3、ViewModel 是负责业务、数据转换
    4、Model 是数据模型,也负责网络的请求
    5、KVO的使用:当数据有更新时,刷新UI
    6、MVVM 方便业务的扩展
    7、ViewModel对Controller没有依赖,能很好的移植

    3、MVVM的好处:
    https://www.objccn.io/issue-13-1/
    1、代码的测试变得更简单
    2、ViewControl 的变得更轻量
    3、可以使用ReactiveCocoa绑定

    4、MVVM + RAC
    http://www.cocoachina.com/ios/20170213/18659.html?=787782089

    相关文章

      网友评论

        本文标题:MVVM 架构初探

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