代理:是一种通用的设计模式。顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做的事。实现代理模式有特定的语法,代理主要由三部分组成:
- 协议:用来指定代理双方可以做什么,必须做什么。
- 代理:根据指定的协议,完成委托方需要实现的功能。
- 委托:根据指定的协议,指定代理去完成什么功能。
通知:观察者模式,由通知中心进行消息接收和消息广播。
比较:
-
功能:都可以完成对象之间的通信
-
效率:代理比通知高
-
关联:delegate是强关联,委托和代理双方互相知道。通知是弱关联,不需要知道是谁发,也不需要知道是谁接收。
-
传递方式:代理是一对一,通知是一对多。delegate一般是行为需要别人来完成。通知是全局通知,跨域通信更广。