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

MVC 理解、注意事项、解耦的理解_第1张图片
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模型


MVC 理解、注意事项、解耦的理解_第2张图片
appleMVC.png

你可能感兴趣的:(MVC 理解、注意事项、解耦的理解)