IOS设计模式第一篇之MVC
设计模式的好处:我们可以写出容易理解,重用度很高的代码。降低代码的耦合度,符合软件工程的思想。
设计模式主要分为三类:创造型的:单例和抽象工厂。结构类型的:
MVC Decorator, Adapter, Facade and Composite.等这几种模式
行为性的:Observer, Memento, Chain of Responsibility and Command.
讲讲第一个设计模式MVC,我们的iOS应用基本都是基于MVC的。
model:持有我们应用的数据,和定义怎么操控他。在你的应用里面就是Album 这个类
View:处理用户的操作和展示model,都是UIView的子类。在应用里面是AlbumView类
Controller:他的作用主要是用来协调View和model把数据展示到View上,就是应用的Viewcontroller类

model通知Controller如果有数据改变,在Controller更新数据在View上。View可以通知Controller用户执行的操作。然后Controller来更新数据。如果有任何数据更新请求。
你可能担心为什么不抛弃Controller呢,并且实现View和model在同样的类看起来更容易。
所有的这一切归功与代码的分离性和可重用性。理想情况下,我们应该让View和model分离,如果View不依赖与模型的具体实现。这样就可以用不同的model来表达不同的数据。
例如,在将来你也许添加movies或者books向你的库里。你仍然可以用同样的View来展示你的movies或者books对象。此外,你如果想创建一个新的项目来处理albums,你可以简单的重用你的专辑类,因为他不依赖任何View。这就是MVC的力量。
怎么使用MVC设计模式呢?
首先你需要确保你的项目中的每个类是一个控制器一个model一个View,不要把两个角色在一个类里面。你已经做好了很好的工作到目前位置你创建了一个Album 和一个AlbumView 类。
第二你为了确保这个方法可行还需要创建三个项目组来放置你的代码为每个类别。
创建三个文件夹一个是model 一个是view 还有一个Controller
现在把之前创建的类放到相应的位置。最后变成这样:

现在你的项目结构看的已经很清晰了,没有很多漂浮的文件,明显的你可以有其他的分组和类,但是应用的核心应该包括这三个类别。
来自英文教程翻译谢绝转载!!!未经允许不得转载维权必究!!!
本类目的设计模式是根据这个例子讲解
http://files.cnblogs.com/qiqibo/BlueLibrary-final.zip
IOS设计模式第一篇之MVC的更多相关文章
- IOS设计模式第九篇之备忘录模式
		
版权声明:原创作品,谢绝转载!否则将追究法律责任. 备忘录模式捕获和具体化对象的内部状态.换句话说,它可以节省你的东西后来,这种外部状态可以恢复在不违反封装; 也就是说,私人数据是私有的. 怎么用备忘 ...
 - IOS设计模式第二篇之单例设计模式
		
现在我们的组件已经有组织了.你需要从其他的地方得到数据,你也可以创建一个API类管理数据这个下个设计模式单例里面介绍. 这个单例设计模式确保这个类仅仅拥有一个实例,并且为这个实例提供一个全局的访问点. ...
 - IOS UI 第一篇:基本UI
		
1. UI 书写 最基本创建一个label 标签 写一个first rate : UILabel *label = [[UILabel alloc] initWithFrame:CGRect ...
 - IOS设计模式之一(MVC模式,单例模式)
		
iOS 设计模式-你可能已经听说过这个词,但是你真正理解它意味着什么吗?虽然大多数的开发者可能都会认为设计模式是非常重要的,然而关于设计模式这一主题的文章却不多,并且有时候我们开发者在写代码的时候也不 ...
 - 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
		
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
 - iOS开发UI篇—从代码的逐步优化看MVC
		
iOS开发UI篇—从代码的逐步优化看MVC 一.要求 要求完成下面一个小的应用程序. 二.一步步对代码进行优化 注意:在开发过程中,优化的过程是一步一步进行的.(如果一个人要吃五个包子才能吃饱,那么他 ...
 - iOS开发——高级技术精选&底层开发之越狱开发第一篇
		
底层开发之越狱开发第一篇 做越狱开发也有一些时间了,有很多东西想总结一下,希望给他人一些借鉴,也是自己对过去开发经历的一些总结.个人不推荐使用盗版,这里主要以技术介绍为主. 这个系列里面主要介绍怎样进 ...
 - IOS设计模式之三:MVC模式
		
IOS设计模式之三:MVC模式 模型-视图-控制器 这个模式其实应该叫做MCV,用控制器把model与view隔开才对,也就是model与view互相不知道对方的存在,没有任何瓜葛,他们就像一个团 ...
 - “MVC+Nhibernate+Jquery-EasyUI”信息发布系统  第一篇
		
一.第一篇内容中必须得简单的介绍一下MVC(在大学时用的是WebForm,拖控件感觉很爽,但是工作后,技术总监让一定要放弃这种 想法!) 1.MVC是什么?:(1) ASP.NET MVC是微软官方提 ...
 
随机推荐
- 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
			
在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控 ...
 - 为什么要使用sass
			
或许你已经听过一个叫作Sass的东东?可能你已经了解它,并且你能像大师一样写出一些函数? 对于不清楚我在讲什么的读者或者客户,你们可以想想web开发过程,你们的期望和站点用户的体验想要怎样的.无论如何 ...
 - [linux] FastDFS访问文件,400 Bad Request
			
linux 安装nginx,FastDFS后,启动访问指定文件出错, 文件名称格式化错误. 解决办法: vi /etc/fdfs/mod_fastdfs.conf 将 url_have_group_n ...
 - jquery 复制DIV与相关事件
			
<div class="pages_img fix" name="fixpages"> <div class=& ...
 - bzoj1513: [POI2006]Tet-Tetris 3D
			
Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一 ...
 - python中使用xlrd、xlwt操作excel表格详解
			
python读excel——xlrd 这个过程有几个比较麻烦的问题,比如读取日期.读合并单元格内容.下面先看看基本的操作: 首先读一个excel文件,有两个sheet,测试用第二个sheet,shee ...
 - struts2 Demo
			
参考资料 :http://www.cnblogs.com/yangy608/archive/2010/11/08/1871962.htmlhttp://www.yiibai.com/struts2/s ...
 - Zookeeper全解析——Client端(转)
			
Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface.了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题.本文将在 ...
 - DCM TUTORIAL – AN INTRODUCTION TO ORIENTATION KINEMATICS (REV 0.1)
			
原英文地址:dcm_tutorial 感觉这篇文章还是很有学习价值的,所以就抽出了一些时间对本文进行的翻译.下面这个好多人用的算法就是一种DCM 滤波器. //==================== ...
 - apache 配置https
			
1.生成密钥# openssl genrsa 1024 > server.key这是用128位rsa算法生成密钥,并保存到server.key文件 2.生成证书请求文件# openssl req ...