观察者模式
2021-02-07 本文已影响0人
MrSYLong
定义
观察者模式(Observer Pattern):定义对象间的一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都可以到通知并做相应针对性的处理。
适用场景
凡是涉及到一对一或者一对多的对象交互场景都可以使用观察者模式。通常我们使用观察者模式实现一个对象的改变会令其他一个或多个对象发生改变的需求,比如换肤功能,监听列表滚动的偏移量等等。
image
image
优点
观察者模式在观察目标和观察者之间建立了一个抽象的耦合。
可实现广播的,一对多的通信
缺点
如果一个观察目标对象有很多直接和间接的观察者的话,会需要比较多的通信时间。
需要注意观察者和观察目标之间是否有循环引用。
在 iOS SDK 中的 KVO 与 NSNotification 是观察者模式的应用。