美文网首页
傻傻分不清楚(代理,委托,协议,事件,block)

傻傻分不清楚(代理,委托,协议,事件,block)

作者: MrOreo | 来源:发表于2016-11-11 18:17 被阅读0次

tag: C # , iOS

总结C#中的观察者模式(利用委托<delegate>和事件<event>(即委托的方法))
VS
iOS中使用代理和block的通知机制(利用代理<delegate>和协议<protocol>).

类比:四个步骤

代理方法的声明   <==>    委托方法的声明      <==>  block方法的声明
代理类型的声明   <==>  事件的声明         <==>  block类型的声明
代理方法的调用   <==>   委托方法(事件)的调用  <==>  block的调用
代理方法实现     <==>    注册实现方法       <==>  block的实现:给block赋值操作
  • 重点: 代理方法传递的参数 <==> 事件中的参数 <==> block中的参数

block的回调信息类似于 C#中的 参数引用类型为out类型,最后在实现处要获取该传递的值;
block的实质:将本工具类的信息,传递给外界使用.因此将重要信息作为参数

    举例子:热水器加热水的操作:
    - 热水器进行烧水,水温度升高;
    - 报警器观察到水到95°时候,发出报警的声音;
    - 显示器显示水烧开后的温度变化情况;

  1. C#中三者之间的关联就是水的温度(temperature);
  • 因此热水器作为事件的发起者,需要传递'temperature'这个重要的变量;
  • 而报警器和显示器则作为监视者,事件的接收者;因此需要将对热水器进行注册事件,以便能够及时通知接收者作出相应的操作处理;

  1. iOS中协议方和遵守协议方关联的也是温度(temperature)
  • 热水器:定义一种协议<protocol>,协议中包裹着代理<delegate>方法
  • 报警器和显示器:需要实现相应的代理方法.

相关文章

  • 傻傻分不清楚(代理,委托,协议,事件,block)

    tag: C # , iOS 总结C#中的观察者模式(利用委托 和事件(即委托的方法))V...

  • untiy——5点彻底搞懂委托与事件

    学unity的同学委托事件傻傻分不清楚,今天我就给大家来讲讲什么是Unity的委托的几个要点: 1: 定义一个委托...

  • unity5点彻底搞懂委托与事件

    学unity的同学委托事件傻傻分不清楚,今天我就给大家来讲讲什么是Unity的委托的几个要点: 1: 定义一个委托...

  • unity:5点彻底搞懂委托与事件

    学unity的同学委托事件傻傻分不清楚,今天我就给大家来讲讲什么是Unity的委托的几个要点: 1: 定义一个委托...

  • 5点彻底搞懂委托与事件

    学unity的同学委托事件傻傻分不清楚,今天我就给大家来讲讲什么是Unity的委托的几个要点: 1: 定义一个委托...

  • OC 底层(KVC、KVO、Delegate、Category、

    目录 1.KVC2.KVO3.通知4.代理、委托、协议5.Block、KVO、通知、代理之间的区别6.分类 Cat...

  • Objective-C笔记(四)委托-代理模式

    协议委托代理是OC中类之间的一种通信方式委托代理思想:1、定义协议2、生成委托3、代理方法调用 1、定义协议 对于...

  • iOS 代理模式

    一、何为代理模式? 关键点如下: 协议 :定义代理和委托的共同接口(方法) 委托方 :根据指定的协议,委托代理去完...

  • 4. 代理

    代理是一种设计模式 代理包括委托对象,代理对象,协议3个部分 协议: 就是规则,置顶委托方可以委托的方法,代理方需...

  • iOS 代理模式

    代理模式确定委托方和代理者。由委托方制定协议、规范接口。让任意类型的遵守协议的代理方设置为委托方需要的代理者,代理...

网友评论

      本文标题:傻傻分不清楚(代理,委托,协议,事件,block)

      本文链接:https://www.haomeiwen.com/subject/xbmfpttx.html