原创文章,欢迎转载。转载请注明:关东升的博客  

MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之中的一个,它最早出如今Smalltalk语言中。

如今,非常多计算机语言和架构都採用了MVC模式。

MVC模式概述

MVC模式是一种复合设计模式,由 “观察者”(Observer)模式、“策略”(Strategy)模式和“合成”(Composite)模式等组成。MVC模式由3个部分组成,如图所看到的,这3个部分的作用例如以下所看到的。

  • 模型。

    保存应用数据的状态,回应视图对状态的查询,处理应用业务逻辑,完毕应用的功能,将状态的变化通知视图。

  • 视图。为用户展示信息并提供接口。用户通过视图向控制器发出动作请求,然后再向模型发出查询状态的申请,而模型状态的变化会通知给视图。

  • 控制器。接收用户请求,依据请求更新模型。另外,控制器还会更新所选择的视图作为对用户请求的回应。

    控制器是视图和模型的媒介,能够减少视图与模型的耦合度,使视图和模型的权责更加清晰,从而提高开发效率。

相应于哲学中的“内容”与“形式”, 在MVC模型中,模式是“内容”,它存储了视图所须要的数据。视图是“形式”,是外部表现方式,而控制器是它们的媒介。

CocoaTouch中的MVC模式

上面我们讨论的是通用的MVC模式,而Cocoa和Cocoa Touch框架中的MVC模式与传统的MVC模式略有不同。前者的模型与视图不能进行不论什么通信,全部的通信都是通过控制器完毕的,如图所看到的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

在Cocoa Touch框架的UIKit框架中。UIViewController是全部控制器的根类,如UITableViewController、UITabBarController和UINavigationController。UIView是视图和控件的根类。

欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台。了解最新技术文章、图书、教程信息
 ​
很多其它精品iOS、Cocos、移动设计课程请关注智捷课堂官方站点:http://www.zhijieketang.com
智捷课堂论坛站点:http://51work6.com/forum.php

最新文章

  1. Mac上编译C++报错
  2. linux文件目录详解
  3. 最小生成树のprim算法
  4. OC基础数据类型-NSData-NSMutableData-NSString
  5. jquery ajax load
  6. Sublime Text 3 Build 3065 All System CracKed By Hmily[LCG]
  7. 001. 为input type=text 时设置默认值
  8. activemq整合spring
  9. Apache Conf/Vost/xx.conf 文件配置
  10. C#解析Json字符串
  11. 3dmax详细讲解全套攻略在线视频教程
  12. GCD 延时操作
  13. Android中微信抢红包助手的实现
  14. OpenCV探索之路(十五):角点检测
  15. Kubernetes之调度器和调度过程
  16. HDU2035
  17. (转)总结使用Unity 3D优化游戏运行性能的经验
  18. git基本操作:使用git将本地代码上传到GitHub
  19. sublime 个人心得
  20. (精)AVL树旋转共8种情况(涵盖所有考研的范围)

热门文章

  1. JS中二进制与十进制的相互转换
  2. Myeclipse下载
  3. HttpClient 学习整理 (转)
  4. Visual Studio 2013/2015/2017快捷键(转载)
  5. SAX解析XML-例子
  6. 集训第六周 数学概念与方法 数论 筛素数 H题
  7. 集训第五周动态规划 E题 LIS
  8. 细说php第八章笔记(初稿)
  9. 如何使用JDK1.6 API
  10. 在ubuntu 18.04下装有线守护wg