IOS设计模式第一篇之MVC

转载 2014年12月13日 15:52:19

设计模式的好处:我们可以写出容易理解,重用度很高的代码。降低代码的耦合度,符合软件工程的思想。

设计模式主要分为三类:创造型的:单例和抽象工厂。结构类型的:

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类

Image

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

现在把之前创建的类放到相应的位置。最后变成这样:

Image(1)

iOS设计模式(九) 命令模式

可以把一系列动作封装成一个命令,在用户不需要知道其实现细节,使用细节的情况下就可以调用。 一般在想让应用程序支持撤销与恢复的情况下使用这一模式。 在OC中NSInvocation和NSUndoMa...
  • a2331046
  • a2331046
  • 2016年07月11日 14:43
  • 274

设计模式(16)之解释器模式

一、什么是解释器模式Interpreter模式也叫解释器模式,是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpre...
  • birdflyto206
  • birdflyto206
  • 2016年12月26日 17:20
  • 115

iOS 设计模式 - 命令模式

在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者...
  • Seal_Shile
  • Seal_Shile
  • 2016年02月25日 23:02
  • 460

iOS开发之设计模式(三)委托模式(Delegation)

概念:委托模式顾名思义就是是把一个对象把请求委托给另一个对象处理。 作用:其实ios自带的api很多都是使用委托模式的,如果不理解委托模式的话,我们就很难顺手的使用那些api,而自定义协议之后使用委托...
  • aa19920630
  • aa19920630
  • 2015年02月04日 11:05
  • 423

实际案例讲解iOS设计模式——MVC模式

本文通过一个实际的案例,讲解如何将一个都写在ViewController中的代码,使用MVC使用分别写到Model、View和Controller之间,以减轻Controller的代码量,减少各个模块...
  • nhwslxf123
  • nhwslxf123
  • 2015年11月08日 01:36
  • 2146

IOS设计模式之一(MVC模式,单例模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuz...
  • sqc3375177
  • sqc3375177
  • 2013年09月17日 14:52
  • 14369

读秦小波《设计模式之禅》 -- 工厂模式

设计模式是一种非常有用的编程技巧,它对于代码的重构有些非常重要的作用,对于软件开发人员来说,需要理解并尝试着使用这些设计的方法。      个人感觉《设计模式之禅》这本书中讲解的非常具体,每个模式都配...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2014年12月25日 08:36
  • 2729

6大设计模式总结__设计模式之禅读书笔记

单一职责原则 2015年12月19日 星期六 15:35 1、Single Responsibility Principle 简称SRP  2、定义: 应该有且仅有一个原因引起类的变更。...
  • u013675234
  • u013675234
  • 2015年12月19日 19:57
  • 516

Django之MVC(MTV)设计模式

Django 的MTV设计模式深入理解之后,会对自己在今后的学习过程中目标更明确。...
  • YangHeng816
  • YangHeng816
  • 2016年08月15日 19:30
  • 3412

MVC,MVP,MVVM设计模式的比较

MVC,MVP,MVVM设计模式的比较
  • axi295309066
  • axi295309066
  • 2016年09月20日 15:07
  • 1838
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS设计模式第一篇之MVC
举报原因:
原因补充:

(最多只允许输入30个字)