iOS雨笙 iOS中MVC的原理和联系

         MVC,即Model - View - Controller, 即模型- 视图 - 控制器.

       MVC的应用是非常广泛的,我们先来分析一下其内部原理.

       Model(模型),是用来存储,处理数据,为应用程序提供数据的,View(视图),是用来展示用户界面的,提供用户交互,展示模型提供的数据.Controller(控制器),类似于一个中间者,既管理获取数据,又管理数据显示,简言之,Model(模型)和View(视图)之间是禁止通信的,必须通过Controller(控制器)进行操控.MVC模式主要就是为了解除模型和视图之间的耦合.

       具体是如何通信的呢?我们分部解释.下面C代表控制器,M代表模型,V代表视图.

       C和V之间的通信.C可以直接控制V.比如在C中创建一个按钮UIButton.这种情况比较少见,一般C只做事件的处理,很少做视图的创建.那如何处理V的事件呢?V会向C发起通信事件,比如设置按钮的事件(UIButton),设置代理(UITextfield的代理),设置dataSource(UITableView的dataSource),而C会处理这些V产生的事件.

       C和M的通信.M是提供数据的,C可以使用M中的数据,那M中的数据有变化如何处理呢?M和C之间的通信方式有KVO,通知,可以在M发生变化时通知C.

       再次强调,V和M之间是禁止通信的.他们之间想实现V把M的数据显示出来,必须通过C,C从M中获取数据,然后在C中显示到View上.

       贴一张MVC之间的关系图,它们之间的关系大体如图所示.

                                           

       为什么要多此一举,创建一个Controller呢?主要是为了实现低耦合,提高重用性,多个视图可以享用一个模型,多个控制器享用一个视图.而且易于维护,布局错误找View,数据错误找Model,之间逻辑错误找Controller.

       MVC其实是一种思想,让代码层次更分明,更具有可读性,代码量达到一定的程度,其中的好处也自然会体现出来.所以,不要太纠结为什么要这样使用,这本身就没有对和错,不结合代码也许说的很空洞,先大体了解里面思路,在之后的学习工作中我们会天天遇到,久而久之也就明白了.

      

      

      



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值