Cocoa编程学习 MVC学习基础

移动开发 iOS
本文介绍的是Cocoa编程学习 MVC学习基础,MVC模式(自1979年以来)已经出现很长时间了,具体内容先来看本文来介绍。

Cocoa编程学习 MVC学习基础是本文要介绍内容,Cocoa 使用了一种修改版本的MVC模式来处理GUI的显示。MVC模式(自1979年以来)已经出现很长时间了,它皆在分离显示用户界面所需的大量任务,并处理用户交互。正如名称所蕴含的,MVC具有三个主要部分,Model(模型)、View(视图)和Controller(控制器):

模型——模型是特定于领域的数据表现形式。比如说,我们正在创建一个任务列表应用程序。你可能会有一个Task对象的集合,书写为List<Task>。 你或许把这些数据保存在数据库、XML文件,或者甚至从Web Service中得到,不过MVC不那么关心它们是在何处/如何来持久保存的(乃至它们是什么)。相反,它特别专注于如何显示这些数据,并处理与用户交互的,好的模型类不包括任何有关用户界面的内容,可以在多个应用程序中使用。

视图——视图代表了数据如何实际地显示出来。在我们这个假设的任务应用程序中,会在一个网页(以HTML的方式)中来显示这些任务,也会在一个WPF页面中(以XAML的方式)来显示,或者在一个iPhone应用程序中显示为UITableView 。如果用户点击某个任务,要删除之,那么视图通常会触发一个事件,或对Controller(控制器)进行一个回调,好的视图类是通用类,可以在多个应用中使用。

控制器——控制器是模型和视图间的粘合剂,负责控制整个应用的流程。控制器的目的就是获取模型中的数据,告知视图来显示。控制器还侦听着视图的事件,在用户选中一个任务来删除的时候,控制着任务从模型中删除。

通过分离显示数据、持久化数据和处理用户交互的职责,MVC模式有助于创建易于理解的代码。而且,它促进了视图和模型的解耦,以便模型能被重用。例如,在你的应用程序中,有两个界面,基于Web的和WPF的,那么你可以在两者中都使用同样的模型定义代码。

因而,在很多MVC框架中不管具体的工作方式如何,基本原理都大致如此的。然而,在Cocoa(及Cocoa Touch)中,还是或多或少有所不同,苹果用MVC来代表Views(视图)、View Controller(视图控制器)和Models(模型);但是在不同的控件中,它们却不是完全一致的,实现的方式也不太一样。

在Objective-C/Cocoa的世界里,我们建立的controller通常是指应用程序(Application)的委托(Delegate),或者可以简单称做app delegate。当你在Objective-C里面建立一个app delegate的时候,这个delegate可以做为你所有model和view的controller,或者你也可以为不同的model和view分别创建controller。

小结:Cocoa编程学习 MVC学习基础 的内容介绍完了,希望本文对你有所帮助!

参考:MonoTouch中的MVC简介。地址:http://www.infoq.com/cn/articles/monotouch-mvc

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-25 13:15:34

Cocoa MVC 架构

2011-07-26 10:42:00

Cocoa Cocoa2d 游戏

2011-07-07 11:03:07

iOS MVC Objective-

2011-05-11 15:27:58

Windows OOPCocoa MVCCocoa

2011-07-20 09:49:41

Xcode Interface Builder

2011-07-26 15:29:36

Cocoa 模式

2011-07-20 10:31:49

Cocoa Slider 颜色

2011-07-25 14:32:40

Cocoa 框架 函数

2011-09-27 13:52:41

2011-07-08 18:03:30

Cocoa Touch 网络

2011-08-15 16:09:44

Cocoa对象Objective-C

2021-03-23 17:21:48

Java编程开发

2011-08-02 13:58:18

Cocoa 框架 Mac OS

2011-07-07 10:07:19

Cocoa 框架

2011-08-15 15:56:29

Cocoa编程模块

2011-07-08 16:09:54

Cocoa Cocos2d 动作

2011-07-20 10:22:16

Cocoa 屏幕 坏点

2013-04-19 10:23:25

编程

2021-03-31 11:21:36

Java语言编程

2011-07-08 16:27:52

Cocoa Cocos2d 动作
点赞
收藏

51CTO技术栈公众号