美文网首页iOS开发日常
iOS当中的MVC,MVVM,MVP

iOS当中的MVC,MVVM,MVP

作者: feedback1991 | 来源:发表于2017-06-19 16:13 被阅读35次

    MV-X

    这里面的X可以是:
    �C(控制器)
    P(展示器)
    VM(视图模型)
    这三个是Model和View之间的胶水或者中间人。一般来说,当用户对View有操作时他负责去修改相应Model,当model值发生变化时他负责去更新对应View。
    Models(模型)-数据层,或者负责数据处理的数据接口层。比如Person和PersonDataProvider类。
    Views(视图)-展示层(GUI),对于iOS来说所有以UI开头的类基本都属于这层。



    View和Model是相互独立的,他们之间就是通过Controller来相互联系。有点闹心的是Controller是重用性最差的,所以我们需要为MVC瘦身。

    MVP-


    MVP和MVC很像双胞胎兄弟,不同在于View和Model之间切断了通信关系,严格的按照View->Presenter->Model的顺序执行,MVP中的协调器Presenter并没有对ViewController的生命周期做任何改变,如果要进行测试我们只要模拟Presenter的数据给View即可。Presenter中没有UI布局中相关的代码,只负责更新View的数据和状态,以及Model间的通信。

    MVVM

    MVVM将MVP中的P改成VM,基本上与MVP的模式完全一样,唯一的区别是它采取双向绑定(data-bingding),View的变动自动反应在ViewModel上,ViewModel的变动也反映在View上。
    MVVM的优点和缺点:
    1.数据绑定使得Bug很难被调试。你看到界面异常了,有可能是你View的代码有Bug,也有可能是Model的代码有问题。数据绑定使得一个位置的Bug被快速传递到其他位置,要定位原始出问题的地方就不那么容易了。
    2.对于过大的项目,数据绑定需要花费更大的内存。从某种意义上来讲,数据绑定就使得MVVM变得很复杂难用。但是这个缺点也被很多人认为是优点。

    相关文章

      网友评论

        本文标题:iOS当中的MVC,MVVM,MVP

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