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

2016-11-11  本文已影响0人  MrOreo

tag: C # , iOS

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

类比:四个步骤

代理方法的声明   <==>    委托方法的声明      <==>  block方法的声明
代理类型的声明   <==>  事件的声明         <==>  block类型的声明
代理方法的调用   <==>   委托方法(事件)的调用  <==>  block的调用
代理方法实现     <==>    注册实现方法       <==>  block的实现:给block赋值操作

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

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

  1. C#中三者之间的关联就是水的温度(temperature);

  1. iOS中协议方和遵守协议方关联的也是温度(temperature)
上一篇 下一篇

猜你喜欢

热点阅读