IOS通知和代理的用法以及优劣比较


IOS通知和代理的用法以及优劣比较

通知: 通知中心实际上是在程序内部提供了消息广播的一种机制。通知中心不能在进程间进行通信。实际上就是一个二传手,把接收到的消息,根据内 部的一个消息转发表,来将消息转发给需要的对象。通知中心是基于观察者模式的,它允许注册、删除观察者。
一个NSNotificationCenter可以有许多的通知消息NSNotification,对于每一个NSNotification可以有很多的观察者Observer来接收通知。 委托代理: 委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做 的事。反映到程序中,首先要明确一个对象的委托方是哪个对象,委托所做的内容是什么。
委托机制是一种设计模式,在很多语言中都用到的,这只是个通用的思想,网上会有很多关于这方面的介绍。
那么二者在开发的过程中,到底在什么情况下用何种方式更为方便和提高效率,根据笔者的开发经验总结一二,望大家不要见笑,有错误的地方,欢迎指正
通知的优势:通知使用起来非常方便,我们只需要在消息需要广播的地方发出去消息,至于消息内部是怎么发的,我们不用去管,只需要在我们想要得到这个消息的地方监听即可,不用管消息是怎么到这儿的。其实里面的原理也不是很复杂,大家有兴趣的可以自己研究。
通知的劣势:如果通知过多,会造成通知的管理复杂,如果管理不好,你会接收到莫名其妙的消息,而无法追踪。
代理的优势:首先,代理的效率要比通知高(个人见解),其实代理就是c++里面的回调,调用我们都很明白,加上个回可能很多人都感觉迷糊了,其实也是调用,只是在我们直观的看的时候,感觉好像是我已经做过某件事情了,可是我们还能接收到已经过去一件事情的反馈,其实这个通知差不多,只是我们自己在已经做的事情里面去预先判断了某件可能发生的事情,然后主动的告诉我们我们想要得到的某件事情。
代理的劣势:实现起来比较复杂,而且应用的场景没有通知多。
那么下面我们讨论下什么情况下用代理,什么情况下用通知
如果一个通知的发送者有多个接受者,而且接受的位置完全不确定,那么这种情况下用通知是比较好的方式
如果一个类能够获取到通知的对象,这种情况下,我们用代理的效率会更高,而且能够更好的实现对要代理的对象的管理。
注:大家有建议的可以下下来,我现在大概的就能写下来这两种情况,其它的总感觉不能用语言表达,望大家多多讨论
关于代理和通知的具体实现,还是贴上连接 这种东西网上很多 代理:http://hi.baidu.com/kirzalid/item/d0d117c67add597589ad9eef
委托通知:http://www.2cto.com/kf/201304/207037.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值