Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109177
  • 博文数量: 29
  • 博客积分: 447
  • 博客等级: 下士
  • 技术积分: 414
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-05 23:03
个人简介

整天捣鼓嵌入式,兼职搞搞iOS,这么折腾为了啥?都是为了俺的娃!

文章分类

分类: iOS平台

2015-01-23 14:59:13

在应用程序开发中,我们经常使用到MVC框架模式,M-Model(即为模型),V-View(视图),C-Controller(控制器).
MVC模式的要求是将数据与视图隔离开.但是数据需要依赖视图进行呈现,视图也需要及时发现数据的变更,这
两者之间唯一的联系纽带就是控制器,由它来负责将数据交给视图去呈现,并且在数据发生变更及时告知视图.
模型负责处理数据,视图负责呈现数据,控制器则负责业务逻辑控制.
模型与视图是无关的,一个模型可以跟给多个视图绑定。
模型与数据格式也是无关的,一个模型可以使用多种格式的数据,如各种不同的数据库,配置文件等.
模型是对数据的抽象封装,不同的数据格式统一封装成一种通用的数据模型,视图和控制器完全可以不用
关心
模型所使用的数据的原始格式.
举个例子:
一个iOS阅读器APP,在启动后的书架页面(UIView)上要显示已经导入的所有书的信息.这个页面的角色就是视图,
所有书的信息就是数据,假定我们把每本书的信息(封面图片,书名,阅读进度)都放在一个book.plist文件中存储.
这个plist文件就是数据.最直接的做法是在UIView中直接读取plist文件进行解析.但是这是不符合MVC的原则的,
我们应该把数据封装在一个模型中.做法是:先从plist将每本书的信息(一个字典)读出,将字典转成模型封装在
Book模型中,组成成一个数组,数组的每个元素都是一个Book实例,这样这个数组就保存着所有书的信息.加载
UIView时,由控制器(UIViewController)将此模型数组传递给UIView,UIView将模型数组里的内容显示出来即可.
UIView并不关心数组里的数据是从哪来的,Book模型也并不关心UIView怎样显示.控制器可以从plist文件,或者
从本地数据库,甚至从网络读取书本的信息,无论从哪读取的信息,都统一转成模型封装成数组传递给UIView就ok了。
这样就是一个标准的MVC模型.
阅读(1177) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~