案例分析:设计模式与代码的结构特性

我要分析的是一个Java框架 RxJava,他是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库,它能够方便的实现Java的异步操作。

代码仓库:https://github.com/ReactiveX/RxJava

RxJava使用观察者模式,当我们需要使用异步操作时就发送一个数据流,订阅者这个时候被调用去处理异步操作。

最简单的异步操作如上,通过Subscribe方式注册。观察者模式面向的需求是:A 对象(观察者)对 B 对象(被观察者)的某种变化高度敏感,需要在 B 变化的一瞬间做出反应。举个例子,新闻里喜闻乐见的警察抓小偷,警察需要在小偷伸手作案的时候实施抓捕。在这个例子里,警察是观察者,小偷是被观察者,警察需要时刻盯着小偷的一举一动,才能保证不会漏过任何瞬间。程序的观察者模式和这种真正的『观察』略有不同,观察者不需要时刻盯着被观察者(例如 A 不需要每过 2ms 就检查一次 B 的状态),而是采用注册(Register)或者称为订阅(Subscribe)的方式,告诉被观察者:我需要你的某某状态,你要在它变化的时候通知我。

猜你喜欢

转载自www.cnblogs.com/cgsilent/p/11929927.html