zoukankan      html  css  js  c++  java
  • iOS MVVM的理解与分析

    https://www.jianshu.com/p/6560505fa0f1

                                            MVVM

     
    MVVM

    MVVM:中心思想是数据实现双向绑定,业务逻辑与试图的分离。

    单独的看图可能太抽象了项目地址:demo

    项目总体框架:

     
    整体的框架

    正向绑定:view--->viewModel

     
    正向绑定

    反向绑定:viewModel---->view(用了KVO)

     
     
     
    数据变化

    到了这里基本上实现了MVVM的双向绑定,没有很难的理解的地方;简单说一下mvvm优缺点:

    优点:

    1. 任务均摊 -- MVVM 的 View 要比 MVP 中的 View 承担的责任多。因为前者通过 ViewModel 的设置绑定来更新状态,而后者只监听 Presenter 的事件但并不会对自己有什么更新。

    2.可测试性 -- ViewModel 不知道关于 View 的任何事情,这允许我们可以轻易的测试 ViewModel。同时 View 也可以被测试,但是由于属于 UIKit 的范畴,对他们的测试通常会被忽略。

    3.易用性 -- 在实际开发中必须把 View 中的事件指向 Presenter 并且手动的来更新 View,如果使用绑定的话,MVVM 代码量将会小的多。

    4.MVC视图控制器太大且难以管理,这个模式提供了一个很好的代替MVC的方案,它保证了让视图控制器的轻量性。

    5.双向绑定数据。

    缺点:

    3.数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。

    2.对于过大的项目,数据绑定需要花费更多的内存。 

     
     
    18人点赞
     
     


    作者:小飞飞啊阿飞
    链接:https://www.jianshu.com/p/6560505fa0f1
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    第二次作业——App案例分析
    第一次作业--四则运算
    一点感想
    结对编程1
    第二次作业
    第一次作业-四则运算
    我的第一篇博客
    第二次作业
    结对编程
    第二次作业 APP分析
  • 原文地址:https://www.cnblogs.com/itlover2013/p/15374211.html
Copyright © 2011-2022 走看看