首页 > iOS 代理和通知的区别

iOS 代理和通知的区别

找的解释是通知一对一,代理一对多,
但是如果我这里有A,B,C,D这四个类,A的代理是B,C,D这样难道不算是一对多的关系?


题主查的是反的吧。通知是一对多,代理是一对一。
通知可以发起一个之后在很多个界面接收到通知,然后获取数据。
代理是一个界面执行另一个界面的东西。


通知是一对多,代理是一对一,这里的一对一和一对多指的是在发出消息时收到消息的那一方的个数,通知是一旦发出多个对象接收到消息。而代理是发出消息后只能某个特定对象获取到消息

个人理解,欢迎相互探讨


我的理解是,代理耦合度更高A,B,C,D需要有生命周期的耦合,代理用于比较明确的实例间的通知关系,比起通知可读性会更好

通知虽然耦合低但不能被滥用,适合单纯广播行为,因为可能B,C,D类不止一个实例,但你期望的只是通知部分实例;通知还考虑多线程调用

从模式上,一种是代理模式,一种算是观察者模式

【热门文章】
【热门文章】