什么是Observer ?
从上面的图可以看到ObserverType核心的就是一个接收事件的函数
|
|
他是对事件处理者的抽象。通过on方法拿到事件,至于具体要怎么处理这个事件,就由实现这个协议的东西决定了。
AnoymousObserver
我们使用过程中经常用subscribe(一个block )这样的函数。起始其中的block会被封装为一个AnoymousObserver对象。这个对象既是一个observer也是一个disposable。为什么要加上disposable呢?observer的on也不需要返回disposable呀?其实是考虑到当sequence dispose之后,防止on方法仍然继续执行。所以他保存了一个isStopped变量。当dispose之后将其设置为true。并在on方法中加入判断,如果isstoped为true,将不执行on。
|
|