`
java-mans
  • 浏览: 11421259 次
文章分类
社区版块
存档分类
最新评论

iPhone开发 委托模式

 
阅读更多
委托是Cocoa中最简单、最灵活的模式之一。委托是指给一个对象提供机会对另一个对象中的变化做出反应或者影响另一个对象的行为。其基本思想是:两个对象协同解决问题。一个对象非常普通,并且打算在广泛的情形中重用。它存储指向另一个对象(即它的委托)的引用,并在关键时刻给委托发消息。消息可能只是通知委托发生了某件事情,给委托提供机会执行额外的处理,或者消息可能要求委托提供一些关键的信息以控制所发生的事情。

委托方法通常包括3种动词:should、will、did。

should表示一个动作发生前,通常带有返回值,可以在动作发生之前改变对象状态。
will在动作发生前,委托可以对动作做出响应,但不带有返回值。
did在动作发生后做出的响应。

从方法的定义我们不难看出委托模式能够起到两方面的作用:

第一:委托协助对象主体完成某项操作,将需要定制化的操作通过委托对象来自定义实现,达到和子类化对象主体同样的作用。
第二:事件监听,委托对象监听对象主体的某些重要事件,对事件做出具体响应或广播事件交给需要作出响应的对象。

个人理解采用委托模式的好处在于:

1、避免子类化带来的过多的子类以及子类与父类的耦合
2、通过委托传递消息机制实现分层解耦

委托模式的实现思路:

1、通常是在对象主体包含一个委托对象的弱引用:
@interface A : NSObject
{
IBOutlet id delegate;
} -(id) delegate;
-(void) setDelegate:(id)obj;
2、委托对象的实现有两种方式:正式协议和非正式协议,对象主体在协议中定义委托方法,委托对象可以选择实现其中某些委托方法,因此如果通过正式协议定义委托方法需要使用@option。
@protocol NSSearchDelegate
@option
-(void)didSearchFinish:(*NSNotification) aNotification;
@end
3、连接对象主体和委托,无非就是通过setDelegate:(id)obj来实现。

4、触发委托方法。

文档来自:《千锋网》--打造中国最大的移动开发者社区

分享到:
评论

相关推荐

    《iPhone开发实战》.(Christopher Allen).pdf

     本书适合所有 iphone开发人员学习参考。... 目录 第一部分 iphone编程简介. 第1章 iphone简介2 1.1 iphone核心规范3 1.1.1 iphone的输入及输出规范3 1.1.2 iphone网络规范4 1.1.3 iphone浏览器规范5...

    iphone3开发基础教程

    第1章 欢迎来到iPhone的世界 1 1.1 关于本书 1 1.2 必要条件 1 1.3 必备知识 3 1.4 编写iPhone应用程序有何不同 4 1.4.1 只有一个正在运行的应用程序 4 1.4.2 只有一个窗口 4 1.4.3 受限访问 5 1.4.4 有限的响应时间...

    iPhone开发秘籍.part2.rar

    本书面向新的iPhone 开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程 序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格, 如何创建安全的密钥...

    iPhone开发秘籍.part1.rar

    本书面向新的iPhone 开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程 序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格, 如何创建安全的密钥...

    iPhone开发秘籍.part4.rar

    本书面向新的iPhone 开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程 序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格, 如何创建安全的密钥...

    iPhone开发秘籍

    iPhone开发秘籍 The iPhone Developer's Cookbook Building Applications with the iPhone SDK 本电子书共295页 Amazon超级畅销书 大量未公开的绝技,带你深入iPhone开发秘境 任务驱动,丰富的实战代码,让你...

    iPhone应用开发从入门到精通代码

    C语言与C++混用975.4 本章小结985.5 本章练习98第6章 iPhone程序的设计模式996.1 MVC模式996.2 对象共享模式1016.3 目标和动作模式1046.4 通告模式1056.5 归档模式1076.6 子视图模式1086.7 委托模式1106.8...

    《iOS6开发指南》精彩书摘

    iOS开发中常用的4种模式,分别为单例模式、委托模式、观察者模式、MVC模式。按照问题提出、实现原理、应用案例的结构介绍了每种模式的适用情况、实现的原理并同时用具体案例来说明每个案例的实现方式。 第4章...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供...

    iPad电子点餐系统

    信息化解决方案提供 • 计算机软件开发与应用 • 互联网技术研究与应用 • IT技术服务 • 行业管理软件/应用软件的设计与...• 委托开发/合作开发 • 网站运营模式及方案设计/网站开发 • 软件/网站界面及用户体验设计

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    常用数据结构(List、Dictionary、Array)、多态、常用设计模式、反射、常用.net类库、泛型、IO流、委托事件、正则表达式、XML、反射、GC等。 2、数据库开发及ADO.Net(6天) 核心技术课程 数据库开发基础、...

    天气应用

    了解委托模式。 Swift协议和扩展。 Swift卫队关键字。 Swift计算的属性。 Swift闭包和完成处理程序。 学习使用URLSession进行网络连接并发出HTTP请求。 使用本地可编码和可解码协议解析JSON。 学习使用Grand...

    Clima-iOS

    了解委托模式。 Swift协议和扩展。 迅捷的后卫关键字。 Swift计算的属性。 Swift闭包和完成处理程序。 学习使用URLSession进行网络连接并发出HTTP请求。 使用本地可编码和可解码协议解析JSON。 了解如何使用Grand...

    Using Swift with Cocoa and Objective-C完整中文CocoaChina精校版

    委托 . 27 延迟初始化 延迟初始化 . 28 错误报告 错误报告 . 28 键值观察 键值观察 . 29 TargetTarget TargetTarget -Action Action Action模式 29 类型匹配与统一规范 类型匹配与统一规范 类型匹配与统一规范 类型...

Global site tag (gtag.js) - Google Analytics