原创文章,欢迎转载。转载请注明:关东升的博客
MVC(Model-VIEw-Controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在Smalltalk语言中。现在,很多计算机语言和架构都采用了MVC模式。
MVC模式概述
MVC模式是一种复合设计模式,由“观察者”(Observer)模式、“策略”(Strategy)模式和“合成”(Composite)模式等组成。MVC模式由3个部分组成,如图所示,这3个部分的作用如下所示。
模型。保存应用数据的状态,回应视图对状态的查询,处理应用业务逻辑,完成应用的功能,将状态的变化通知视图。
视图。为用户展示信息并提供接口。用户通过视图向控制器发出动作请求,然后再向模型发出查询状态的申请,而模型状态的变化会通知给视图。
控制器。接收用户请求,根据请求更新模型。另外,控制器还会更新所选择的视图作为对用户请求的回应。控制器是视图和模型的媒介,可以降低视图与模型的耦合度,使视图和模型的权责更加清晰,从而提高开发效率。
650) this.width=650;" width="500" height="266" title="image2.jpg" alt="wKioL1bfvEKQ_fYdAAIspFc_HDU446.jpg" src="http://img.jb51.cc/vcimg/static/loading.png" border="0" vspace="0" hspace="0" src="http://s2.51cto.com/wyfs02/M01/7D/12/wKioL1bfvEKQ_fYdAAIspFc_HDU446.jpg">
对应于哲学中的“内容”与“形式”,在MVC模型中,模式是“内容”,它存储了视图所需要的数据,视图是“形式”,是外部表现方式,而控制器是它们的媒介。
Cocoatouch中的MVC模式
上面我们讨论的是通用的MVC模式,而Cocoa和Cocoa touch框架中的MVC模式与传统的MVC模式略有不同,前者的模型与视图不能进行任何通信,所有的通信都是通过控制器完成的,如图所示。
650) this.width=650;" width="500" height="275" title="未标题-2.jpg" alt="wKiom1bfu-GzuaW4AANF_C-CqOA649.jpg" src="http://img.jb51.cc/vcimg/static/loading.png" border="0" vspace="0" hspace="0" src="http://s1.51cto.com/wyfs02/M02/7D/13/wKiom1bfu-GzuaW4AANF_C-CqOA649.jpg">
在Cocoa touch框架的UIKit框架中,UIVIEwController是所有控制器的根类,如UItableVIEwController、UITabbarController和UINavigationController。UIVIEw是视图和控件的根类。
欢迎关注关东升新浪微博@tony_关东升。 650) this.width=650;" width="150" height="150" title="qrcode_for_gh_ca9759a5ef7f_258.jpg" alt="wKioL1bfvJ6yX9hYAADC6S3kNXs580.jpg" src="http://img.jb51.cc/vcimg/static/loading.png" border="0" vspace="0" hspace="0" src="http://s5.51cto.com/wyfs02/M01/7D/12/wKioL1bfvJ6yX9hYAADC6S3kNXs580.jpg">
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
智捷课堂论坛网站:http://51work6.com/forum.php
以上是内存溢出为你收集整理的《从零开始学Swift》学习笔记(Day67)――Cocoa Touch设计模式及应用之MVC模式全部内容,希望文章能够帮你解决《从零开始学Swift》学习笔记(Day67)――Cocoa Touch设计模式及应用之MVC模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)