协议和代理

一、代理
【认识代理】
  1、从生活角度
            销售代理、人事代理、律师代理、……
            需要有两方,一个是主动方,一个是被动方

2、从编程角度
            对象之间通讯的一种方式

3、总结
            是一种设计模式,是对象之间数据交换的一种手段
            主动方:委托方,制定协议的一方(规定接口)
            被动方:代理方,遵从协议的一方(实现接口)
    
  4、简单使用
            老板招聘工程师写代码
            委托方:老板,制定协议(会写代码)
            代理方:工程师,遵从协议(会写代码)
            
            练习:老板委托工人(老王)买木材(wood)

【代理作用】
  1、代理传值
        广播站发送消息,收音机接收并播放出来
        委托方:广播站,制定协议(接收并播放)
        代理方:收音机,遵从协议(能够接收并播放)

练习:老妈委托儿子打2斤酱油
        委托方:老妈,制定协议(必须会打酱油)
        代理方:儿子,遵从协议(能够按要求打酱油)

2、代理回调
        员工要求老板按时发工资
        委托方:员工,制定协议(按时发工资)
        代理方:老板,遵从协议(必须按时发工资)

老板 <—— 员工

视图控制器和按钮
        委托方:按钮,制定协议(按下之后的响应)
        代理方:视图控制器,遵从协议(响应方法)

时间: 2024-10-05 04:23:43

协议和代理的相关文章

iOS基础——浅谈个人对协议、代理的理解

阅读前的知识储备 请确保在阅读本文时,曾经不止一次亲自动手敲过有关代理模式的代码.如果没有,请在积累一定的经验后阅读,相信会更有收获.也希望大神不吝指教. 什么时候要用协议和代理? 下面举一个例子,谈谈个人对代理.协议的理解,希望能够起到抛砖引玉的效果. 假设现在有这么一个任务需求:页面A需要跳转到页面B(有可能会传入一些参数),页面B填写或者处理一些信息在跳转回页面A的同时还需要把数据返回A. 不要为了用代理模式而用代理模式 代理模式只是一种设计模式,它的价值在于通过一个统一的模式,解决一个原

黑马程序员_ 利用oc的协议实现代理模式

先说下代理模式是什么吧 定义: 为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象 而代理对象可以在客户端和目标对象之间起到中介的作用. 在看过李明杰老师的课程后,我对代理模式有了最初步的理解,虽然还很浅显 但是也明白了代理模式的 一些作用跟用法.首先使用代理模式可以降低耦合度.大大的增强了代码的弹性. 举个例子,小明想看电影,但是没时间买票 于是就拜托小强去买票 最简单的方式就是 建立一个person类(小明) 一个agent类(代理类) ag

第七讲.NSDate,category(分类),extension(延展),protocol(协议),delegate(代理)

一.掌握NSDate和NSDateFormatter的使用 NSDate是Cocoa中?用于处理日期和时间的基础类,封装了某一给定的时刻(含日期,时间,时区). 了解NSDate的创建,如何计算当前时间,时间间隔,以及时间日期与字符之间的互转. 1>.NSDate创建,当地时间计算,时间按间隔计算,时间与字符之间的互转 练习题1:计算当前时间与一个固定时间按的时间差 练习二:字符串转化为日期对象 二.掌握Category的定义和使用(只能为类扩展类方法或实例方法) 1.主要作用是为:没有源代码的

oc协议与代理简单例子

创建一个买票协议.该协议规定输出是否还有剩票 1 #import <Foundation/Foundation.h> 2 3 @protocol BuyticketsDelegate <NSObject> 4 5 @required 6 - (void) check; 7 8 @end 创建一个代理Agent遵守协议 1 #import "Buytickets.h" 2 @interface Agents : NSObject<BuyticketsDele

协议和代理的使用步骤

*  对于协议和代理的使用步骤:(一对多 -- 一个代理对象可以座多个任务(方法)) 1.自定义协议 1.自定义协议(存放代理实现的任务, 分为可选和必须实现) 2.定义代理属性(用于代理对象, id 类型 -- 要服从协议, 语义特性 assign) 3.在其他文件中为该类设置代理(指定任务由谁来完成) 4.让代理所处的类服从协议(答应要干活) 5.代理对象实现协议中的方法(指定任务完成的细节) 6.委托方通知代理区执行协议中的方法(让代理干活) 2.无需自定义协议 1.在其他类中为该类指定代

OC第九节——协议与代理

一.理解协议与代理 协议: 协议就是需要相互遵守的约定.规范:需要去实现协议中规定的方法. 代理: 代理是一个概念,很难用一个名词去定义(如我们可以说协议其实就是一个方法列表).它更像是一种关系,我要做某一个事情,但我自己不想去做这件事,我委托其他人帮我去做这件事.这个时候,这位其他人就是我的代理.代理模式是一种设计思想,是人们在开发过程中经验的积累与总结,他们发现,以这样的形式去写代码,会降低代码间的耦合,这样就能增加代码的重用性,就能提高开发效率,节省开发时间. 二.协议的关键词 @requ

【OC学习-22】协议和代理双剑合璧——中介找房的代理模式

(1)什么是协议 协议其实是一种接口,创建出来给类(类1)调用,而其他类(类2)可以通过这个协议可以和类1进行通信.所以说它类似于一种接口,实现类和类之间的互动. (2)创建协议 通过New File >>> Objective-C protocol创建.只生成一个.h文件.在这个.h文件里面写方法,分两种@required和@optional,一个是必须实现的方法,另一个是可选实现的方法,默认是required,这种分类方法类似于实例变量的分类. #import <Foundat

HTTP协议 (五) ---代理

HTTP协议 (五) 代理 什么是代理服务器 Web代理(proxy)服务器是网络的中间实体. 代理位于Web客户端和Web服务器之间,扮演"中间人"的角色. HTTP的代理服务器即是Web服务器又是Web客户端. Fiddler就是个典型的代理 Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销代理,这样就不会影响别的程序. 代理的作用一, FQ 很多人都喜欢用Facebook, 看youT

swift 用协议实现代理传值功能

1.功能简介 RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口.在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootViewController,并改变其label为输入的值. 2.实现思路 ModelViewController中定义一个成员变量,成员变量有个能改变label值的函数,通过在ModelViewController中调用该函数从而改变RootViewController中label的值,因为ModelView

《Effective Objective-C 2.0》—(第23-28条)—类别、协议,代理,匿名对象、delegate

第23条:通过委托与数据源协议进行对象间通信 对象之间经常需要相互通信,而通信方式有很多.OC开发者广泛使用一种名叫"委托模式"(Delegate Pattern)的编程设计模式来实现对象间的通信,该模式的主旨是:定义一套接口,某对象若想接收另一个对象的委托,则需遵从此接口,以便称为"委托对象"(delegate).而这"另一个对象"则可以给其委托对象回传一些信息,也可以在发生相关联时间时通知委托对象. 此模式可以将数据与业务逻辑解耦. 在Obj