观察这模式
它基于subject(生产者/提供者)这个概念。subject是一种特殊对象,当他改变时,那些有他保存的一些列对象将会得到通知。而这一系列的对象被称为Observers(观察者),他们会对外暴露一个通知的方法,当subject状态发生改变时会调用这个方法。
PS:一个Subject可以为多个Observers提供服务。当subject状态发生变化时,和谐Observers中的每一个都会收到通知。
什么时候使用观察者模式?
- 当你的框架有两个实体类,一个依赖另一个,你想让他们互不影响湖泊这是独立复用他们时。
- 当一个变化的对象通知那些与他自身变化相关联的未知数量的对象时。
- 当一个变化的对象通知那些无需推断具体是谁的对象时。
Rxjava观察者模式工具包
在Rxjava的世界里,有四种角色:
- Observable (观察)
- Observer (观察者)
- Subscriber (订阅者)
- Subjects (生产者)
Observables和Subjects是两个“生产”实体,Observers和Subservers是两个“消费”实体。