事件分发
2016-04-15 14:45:19 0 举报
事件分发是软件开发中的一种常见模式,用于处理用户交互或系统内部事件。当某个事件发生时,程序会将该事件传递给相应的处理器或回调函数进行处理。这种模式可以有效地解耦代码,提高代码的可读性和可维护性。在事件驱动编程中,事件分发是非常重要的一环,它决定了程序的执行流程和响应方式。因此,设计一个高效、稳定、易扩展的事件分发系统对于软件项目的成功至关重要。
作者其他创作
大纲/内容
map()得到OnSubscribe2
call
OnSubscribe1.call(subscriber2)原来的OnSubscribe接收到lift()转换得到的subscriber2
对象名带1的是我们自己创建的,如subscriber1对象名带2的是lift()自行创建的,如subscriber2
public final ObservableObservable nest() { return just(this);//创建一个ObservableObservable}
lift
onNext
lift()内部转换得到subscriber2
Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { subscriber.onNext(\"1\"); subscriber.onCompleted(); }}};
我们创建的观察者最终收到转换后的数据
相应的底层源码
observable1.subscribeOn(scheduler)
subscribe
OnSubscribe.call(subscriber)
map().subscribe(subscriber1)开始订阅
流程的执行逻辑
subscriber1.onNext(String转成Integer)
public final Observable subscribeOn(Scheduler scheduler) { return nest().lift(new OperatorSubscribeOn(scheduler));}
subscriber.onNext(String)
public Subscriber call(final Subscriber o) { return new Subscriber(o) { @Override public void onNext(T t) { o.onNext(transformer.call(t)); //我们传的观察者收到转换数据 } };}
OnSubscribe2.call(subscriber1)
observable.subscribe(subscriber)开始订阅
subscriber2.onNext(String)
0 条评论
下一页