MVC设计模式(转)

转载 2016年08月30日 11:00:55

模型-视图-控制器(Model-View-Controller,MVC)是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程序中。在iOS开发中MVC的机制被使用的淋漓尽致,充分理解iOS的MVC模式,有助于我们程序的组织合理性。

这里写图片描述

模型对象

模型对象封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。例如,模型对象可能是表示游戏中的角色或地址簿中的联系人。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。

视图对象

视图对象是应用程序中用户可以看见的对象。视图对象知道如何将自己绘制出来,并可能对用户的操作作出响应。视图对象的主要目的,就是显示来自应用程序模型对象的数据,并使该数据可被编辑。尽管如此,在 MVC 应用程序中,视图对象通常与模型对象分离。

在iOS应用程序开发中,所有的控件、窗口等都继承自 UIView,对应MVC中的V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现。

控制器对象

在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。

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

对于不同的UIView,有相应的UIViewController,对应MVC中的C。例如在iOS上常用的UITableView,它所对应的Controller就是UITableViewController。


注意:
1. Model和View永远不能相互通信,只能通过Controller传递。
2. Controller可以直接与Model对话(读写调用Model),Model通过Notification和KVO机制与Controller间接通信。
3. Controller可以直接与View对话,通过outlet,直接操作View,outlet直接对应到View中的控件,View通过action向Controller报告事件的发生(如用户Touch我了)。Controller是View的直接数据源(数据很可能是Controller从Model中取得并经过加工了)。Controller是View的代理(delegate),以同步View与Controller。

以上内容转自柳志超博客

相关文章推荐

iOS开发之有趣的UI —— 数据转模型及MVC设计模式

在上一篇iOS开发之有趣的UI —— 基础控件与经典案例中已经对基本控件进行了详细的介绍并且简单的做了一个购物车的项目,但是这个项目还有待完善,里面还有很多非常实用技术点和设计思想,所以本次分享将从以...

(转)第3组UI(1)-AdapterView之ListView及MVC设计模式

原地址:http://blog.csdn.net/womengmengyan/article/details/47909001#1mvc设计模式 一列表视图ListView ...
  • duyiqun
  • duyiqun
  • 2017年04月13日 11:38
  • 225

封装字典转模型 懒加载 MVC设计模式

代码详情:ViewController.m // // ViewController.m #import "ViewController.h" #import "CZAppInfo.h" @in...

MVC设计模式 - 发展进程

  • 2017年04月09日 16:11
  • 541KB
  • 下载

mvc设计模式

  • 2013年05月15日 08:40
  • 14KB
  • 下载

MVC设计模式/SpringMVC/SSM框架整合配置文件讲解

1.MVC设计模式理解关键字:解耦合对比原始开发:*原始开发过程:请求—Controller(创建model对象调用模型层进行数据处理)—Model(创建View对象)—View(进行视图渲染)—响应...

浅谈MVC设计模式与MFC文档结构

  • 2014年01月01日 20:15
  • 239KB
  • 下载

MVC设计模式范例

  • 2014年06月26日 17:12
  • 13KB
  • 下载

Android之MVC设计模式在Android中的使用

最近一直在想怎么去优化一下现有的项目的代码和框架,项目中代码的臃肿和繁多在修改需求的时候带来了非常大的不方便,在大的项目工程中,一个好的框架,好的设计模式,能减少很大的工作量,所以最近一直在深入的学习...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MVC设计模式(转)
举报原因:
原因补充:

(最多只允许输入30个字)