ios MVC模式浅析
2016-01-22 18:40
309 查看
一、MVC模式指的是什么?
1、解释: MVC的全称是Model View Controller ,是模型(model)–视图(view)–控制器(controller),他表示一种常见客户端软件开发框架。
2、该模式的原则:Don’t repeat yourself 。也就是说,要求代码尽可能的共用起来,解决代码冗余的问题,其实很多设计模式都是基于这样的原则做的。
3、MVC设计模式的要点:
(1) model和view永远不能相互通信,只能通过controller传递
(2) controller可以直接和model对话(读写调用model),model通过NSNotification、KVO、或者setter方法与controller间接通信。
(3) controller可以直接与View对话(通过outlet,直接操作view,outlet直接对应到View中的控件),View通过 action向controller报告事件的发生(如用户Touch我了)。controller是view的直接数据源(数据很可能是 controller从model中取得的)。controller是view的代理(delegate),以同步View与controller,delegate是一组协议,表示程序将要或者已经处于某种状态时,来调整View,以对用户有个交代。例如系统内存不足了,你是 不是相应的降低view的质量以节省内存。
3、那么各自怎么分工,互相协调的呢?
(1)对于model层:封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。例如,模型对象可能是表示游戏中的角色或地址簿中的联系人。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。
(2) 对于view层: 模型的可视化表示以及用户用户交互的控件。视图对象知道如何将自己绘制出来,并可能对用户的操作作出响应。视图对象的主要目的,就是显示来自应用程序模型对象的数据,并使该数据可被编辑。尽管如此,在 MVC 应用程序中,视图对象通常与模型对象分离。
(3)对于controller
在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。控制器对象解释在视图对象中进行的用户操作,并将新的或更改过的数据传达给模型对象。模型对象更改时,一个控制器对象会将新的模型数据传达给视图对象,以便视图对象可以显示它。
1、解释: MVC的全称是Model View Controller ,是模型(model)–视图(view)–控制器(controller),他表示一种常见客户端软件开发框架。
2、该模式的原则:Don’t repeat yourself 。也就是说,要求代码尽可能的共用起来,解决代码冗余的问题,其实很多设计模式都是基于这样的原则做的。
3、MVC设计模式的要点:
(1) model和view永远不能相互通信,只能通过controller传递
(2) controller可以直接和model对话(读写调用model),model通过NSNotification、KVO、或者setter方法与controller间接通信。
(3) controller可以直接与View对话(通过outlet,直接操作view,outlet直接对应到View中的控件),View通过 action向controller报告事件的发生(如用户Touch我了)。controller是view的直接数据源(数据很可能是 controller从model中取得的)。controller是view的代理(delegate),以同步View与controller,delegate是一组协议,表示程序将要或者已经处于某种状态时,来调整View,以对用户有个交代。例如系统内存不足了,你是 不是相应的降低view的质量以节省内存。
3、那么各自怎么分工,互相协调的呢?
(1)对于model层:封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。例如,模型对象可能是表示游戏中的角色或地址簿中的联系人。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。
(2) 对于view层: 模型的可视化表示以及用户用户交互的控件。视图对象知道如何将自己绘制出来,并可能对用户的操作作出响应。视图对象的主要目的,就是显示来自应用程序模型对象的数据,并使该数据可被编辑。尽管如此,在 MVC 应用程序中,视图对象通常与模型对象分离。
(3)对于controller
在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。控制器对象解释在视图对象中进行的用户操作,并将新的或更改过的数据传达给模型对象。模型对象更改时,一个控制器对象会将新的模型数据传达给视图对象,以便视图对象可以显示它。
相关文章推荐
- 第11章 掌握GCD(唐巧《IOS开发进阶》)
- iOS及Mac开源资料
- iOS图片拉伸技巧
- iOS开发拓展篇—静态库
- iOS崩溃调试
- [iOS]如何给Label或者TextView赋HTML数据
- 一款德国的Nagios插件---Check_mk 搭建
- ios bitcode 机制对 dsym 调试文件的影响
- IOS的小知识点补充
- ios nil null Nil NSNull区别
- IOS常用设计模式之---单例模式
- 整理常用的iOS第三方资源
- iOS-开发环境xcode快捷键 + mac快捷键
- [iOS]解决模拟器无法输入中文问题
- iOS开发 根据URL获取图片的尺寸
- iOS融云获取Token问题,献给iOS融云新手!
- iOS自定义的emoji表情键盘
- [iOS]开发者证书和描述文件的作用
- iOS 一些技巧
- IOS中本地存储和查看json数据