iPhone App开发实战手册学习笔记(2)之MVC模式

1 前言

在IOS的Cocoa Touch提供的成千上万个类中,大多数可以分为三类,而且其中的对象之间都有简单和明确的交互方式。每个IOS应用程序都使用了一个简单的设计模式:模型-视图-控制器。简称MVC,今天我们就来学习一下IOS中的这个模式。

2 详述

2.1 设计模式图:

2.2 三层介绍

2.2.1 视图层(View)

IOS应用屏幕上出现的控件,如按钮,滚动列表等,统称为View。视图知道如何展现数据,有些视图还知道如何响应用户输入,例如UITextField。

在很多应用中我们还要创建自己的视图用于显示数据,比图显示股票表的标准控件,在IOS中是没有提供的,我们需要拿出自己的解决方案。为应用创建独一无二的样子,但是都要基于UIView和UIController类来实现我们自己的视图。

2.2.2 模型层(Model)

Model是应用程序的核心和灵魂,因为他负责管理数据。与视图不同,模型不了解用户当前执行的动作或者当前屏幕上显示的内容,其唯一的功能是操作和处理在应用程序中的用户数据。通常提供这些基本行为提供内部逻辑实现。

例如从Intet上下载股票数据的应用程序,需要使用模型对象来存储历史价格。

有些模型对象可以跨应用程序工作,如联系人和用户默认设置的数据库。还有一些其他的模型,如股票应用程序所用的模型,是专属某个应用的。

在创建自己的模型时候常会用到Cocoa Touch内部实现的类,如:NSArray和NSDictionary类将数据存储到有序表或者哈希表中。此外还有NSURLConnection和NSData这样的类可以从互联网获取和存储数据。

最后可以使用Core Data框架来操作SQLite数据库(存储和检索对象)。

2.2.3 控制器层(Controller)

Controller要复杂一些,他充当着视图和模型的中介,在模型中的数据变化时,负责更新视图。同样控制器会知道有用户输入,并相应的更新模型数据。

2.3 举例MVC工作流程

(1) 用户点击按钮刷新视图,动作被发送到控制器。

(2) 控制器接着让模型去加载新的数据。

(3) 模型打开一个网络连接并开始下载数据。

(4) 在数据加载完成后,模型会通知控制器新的数据已经准备好了。

(5) 控制器传送行的数据到视图中,用户看到更新后的结果。

2.4 MVC好处

模型和视图不直接交互,降低耦合度,减少依赖。

控制器对象往往负责初始化任务。模型和视图在某些时候必须加载和初始化,控制器的核心角色使其成为了这项工作的必然选择。

UIViewController类及其几个子类主要负责执行这些基本的功能。这几个类是在开始学习其他类之前必须要掌握的。

3 结语

以上是所有内容,希望对大家有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值