协议和代理以及NSNotification、Block、Delegate、KVO的区别

协议:

1、协议是一个方法列表,并且里面的方法多少是相关的

2、协议中的方法默认是必须要实现的,即@required

代理:

1、代理又叫委托,是一种设计模式

2、代理是对象与对象之间的通信交互

3、代理是通过协议来实现的

4、代理的属性要用assign修饰,以防止循环引用

NSNotification、Block、Delegate、KVO的区别:

1、NSNOtification通知是一对多的关系,一个对象向所有观察者提供变更通知;

2、Block是一对一的回调机制,更加简洁;但是当通信事件比较多时,建议使用代理;

3、Delegate也是一对一的回调机制,需要协议方法。代理对象实现协议方法,并且需要建立代理关系才能进行通信;

4、KVO观察者模式,是当被观察者对象的属性发生改变时,会向观察者发送一条改变的通知的设计模式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容