MVC -设计模式之王

MVC -设计模式之王

Model View Controller 是Cocoa的基石之一,且毫无疑问的是所有设计模式中最常用的设计模式,它根据你的应用中的一般角色去分类对象,鼓励在完全分离的模式下分角色。

Model:这个对象hold住你的应用数据,且定义如何去操作它,例如本例中就是Album类。

View:这个对象掌管了Model的可视化显示,和控制用户的交互,基本上所有的都是UIView和它的子类。在本例中这个就是被分离成的AlbumView类。

Controller:控制器是调节所有工作的调节器,它访问模型中的数据,然后用视图去显示它,根据要求监听事件和操作数据。你能想象在这个哪个是Controller么,就是ViewController.

视图和模型通过控制器去交流的场景可以被描述成以下图:

如果在Model中有任何数据变化,那么它就会通知Controller,反过来,Controller更新在View中的数据,View可以通知Controller关于用户的行为,然后Controller要么根据需要或者检索要求的数据去更新Model。

你也许会怀疑为什么不只是创建了Controller然后将View和Model一起放到里面去实现?那样看起来不是更容易么?

这所有的所有都是为了是代码分离化和提高可重用性。理想情况下,视图应该会从Model中完全分离出来,如果视图不依赖于某个具体的Model的实现部分,那么它可以用不同的Model去展示其他一些数据来实现它的可重用性。

例如:如果将来你想添加一些电影和书籍到你的库中去,你仍然可以使用相同的AlbumView去展示你的电影和书籍的对象,更进一步说,如果你想去创建一个工程去处理专辑,你可以很简单的去重用你的Album类,因为它不依赖于任何一个视图。这就是MVC的魔力。

如何实现MVC模式

首先,你需要确保你的工程中的每一个类都是Controller,或者View,或者Model,不要讲任何两个中的角色的任务连接在一块,通过创建Album和AlbumV类你已经做了一个很好的工作。

其次,为了确保遵守这个工作方法,你应该创建三个工程组去hold住你的代码,每类一个分组。

按住Command+option+N键,创建一个组,名为Model,同样创建View和Controller,将Album.h和Album.m拖入Model中,拖动AlbumView.hAlbumView.m的视图组,最后拖ViewController.hViewController.m到控制器组.

这时候你的工程结构应该看起来是这样的:

现在看起来没有那些文件浮在四周,看着好多了。显然你可以有其他的组和类,但是这个应用中的核心就是包含在这三个类中的。

既然你的组成部分已经被组织起来了,你需要从别的地方去获得album的数据,你将会创建一个API类去在全部的代码中去管理这些数据-这将会在你的下一个设计模式-单例中得到展示。

时间: 2024-11-18 22:05:48

MVC -设计模式之王的相关文章

python mvc设计模式(一)

一.代码组织(目录结构) 二.mvc概述 MVC设计模式即MVC框架. MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 三.代码 1.数据 #cod

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

转---MVC设计模式详解

MVC(Model View Controller)模型(model)-视图(view)-控制器(controller):MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,从例子可以看出MVC就是Observer设计模式的一个特例.MVC如何工作MVC是一个设计模式,它强制性

【原创翻译】认识MVC设计模式:web应用开放的基础(基础篇)

原文地址:http://www.larryullman.com/2009/10/08/understanding-mvc/ 翻译:shadowmydx 转帖请注明 最近,我计划写一个系列关于自己在过去几个月使用的Yii框架(shadowmydx:基于PHP5的一个web开发 框架,详情自行google)的文章.但在一切开始以前,我认为首先还是需要先介绍一下MVC设计模式: 模型-视图-控制器.MVC模式(30年前就有鸟)已经成为了框架以及许多各式各样的应用的首选.MVC模 式主要着眼于分离应用的

MVC设计模式在网站中的应用

MVC设计模式在网站中的应用 以淘宝的购物车为例 一.结合六个基本质量属性 可修改性 采用MVC设计模式的时候,可以将视图.模型.控制器分析,将用户动作.数据表示.应用数据分离开来,如果用户需要以不同的视图来展示,只需要修改视图中的代码即可,对于模型和控制器的代码,则不需要做改动,即可满足要求,使得对代码的修改非常方便. 易用性 用户可以直接在商品展示界面中将商品添加进购物车,直接点开购物车就可以看到已经添加的商品:删除某一件商品时,也可以直接在商品的后面点击删除,确认之后,即可删除. 安全性

如何理解MVC设计模式

MVC是一种架构模式 MVC(Model View Controller) M-模型(model) V-视图(view) C-控制器(controller): MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,从例子可以看出MVC就是Observer设计模式的一个特例. MV

ASP.NET下MVC设计模式的实现

[转载]MVC架构在Asp.net中的应用和实现 转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.net环境下的具体实现.旨在帮助Web设计开发者更好的了解和掌握MVC,合理利用MVC构建优秀的Web应用. 关键字:MVC.视图.控制器.模型.Asp.net

MVC设计模式与三层架构

三层架构分别是:表示层(Web层).业务逻辑层(BLL层)和数据访问层(DAL层). (1)表示层负责: a.从用户端收集信息 b.将用户信息发送到业务服务层做处理 c.从业务服务层接收处理结果 d.将结果显示给用户 (2)业务逻辑层负责: a.从表示层接收输入 b.与数据层交互执行已设计的业务 c.操作(业务逻辑,系统服务等) d.将处理结果发送到表示层 (3)数据访问层负责: a.数据存储 b.数据获取 c.数据维护 d.数据完整性 在三层结构设计中,表示层可由视图和控制器来实现,而业务逻辑

程序开发:MVC设计模式与应用

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 下面讲解简单的登录操作: 程序流程图: 在本程序中用户输入的登陆信息提交给Servlet进行接收,Servle