美文网首页IOS基础和进阶开发
MVC 理解、注意事项、解耦的理解

MVC 理解、注意事项、解耦的理解

作者: 王大吉Rock | 来源:发表于2017-04-26 15:57 被阅读33次
    MVC结构图.png

    Model:

    (1)装载着应用程序的数据,控制器将网络获取的数据传递给模型中,在模型中进行运算和业务逻辑的处理。
    (2)和Controller的联系:如果模型中的数据改变了,就会发出通知或者KVO给控制器,Controller接收到此通知后,就会将新的数据传递给View。
    (3)和View的联系:在MVC模式中要避免Model和View直接关联,需要先将数据传递给Controller,再由Controller进行传递给View中。

    为什么View和Model不要进行直接联系

    1. 我们可以使用通知的方式建立起View和Model的关系,当Model改变的时候发出通知,View就会接收到通知,那如果这样的话就要求View完全了解Model,不然一有通知过来就要处理相关的逻辑,View的负担就很大了。
    2. 最重要的一点是,如果两者有联系的话,那就不满足MVC模式设计的初衷了,MVC模式设计的初衷就是数据和视图分离,将控制器进行解构,分离出Model,这样Model就可以仅仅处理数据的计算和逻辑,也可以拿到其他的地方使用。那如果Model和View进行直接的联系,View和Model之间就存在了关联,那耦合度就会升高。

    View:

    (1)将Model中的数据呈现出来。Controller可以将Modle数据传递给View,View就可以将Model中的数据用控件显示出来。
    (2)处理用户交互。当用户出发了控件的事件,那么View可以使用代理将事件递给控制器(此控制器需要遵守View的代理)

    Controller:

    (1)Controller解释 在View中进行的用户操作,并将新的或更改过的数据传达给模型对象。
    (2)模型对象更改时,一个控制器对象会将新的模型数据传达给视图对象,以便视图对象可以显示它。

    苹果推荐的MVC模型


    appleMVC.png

    相关文章

      网友评论

        本文标题:MVC 理解、注意事项、解耦的理解

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