1、定义
观察者模式的重要作用就是解耦,定义对象之间一对多的依赖关系,被依赖对象为Subject,依赖对象为Observer,Subject通知Observer更新状态。
2、使用场景
- 跨系统的消息交换,如消息队列,事件总线的处理机制。
- 事件多级触发。
- 关联的行为。
3、UML类图
4、代码实现
5、总结
优点:观察者和被观察者之间依赖于Observer和Observable抽象,实现解耦。
缺点:默认的观察者是顺序执行的,当一个观察者卡顿时会影响到整体的效率,可以通过异步回调的方式来解决,这样执行顺序就不能保证。
Android源码应用:ListView更新数据,BroadcastReceiver