简单理解响应式编程RxJava

什么是RxJava?

RxJava是一种基于观察者模式的响应式编程框架。

举个简单的例子,一般风格:

  • System.out.println(“abc”);

RxJava响应式编程风格:

  • Observable.just(“abc”).subscribe(System.out::println);

怎么来理解这个东西?

我们先来看一下这个一般风格,它包含三部分:

+---------+ +-----+ +---+
|System.out.println("abc");
+----+----+ +--+--+ +-+-+
     |         |      |
+----+----+ +--+--+ +-+---+
| 输      | | 打  | | 数  |
| 出      | | 印  | | 据  |
| 设      | |     | |     |
| 备      | |     | |     |
+---------+ +-----+ +-----+

可以看出上述语句的意思是"输出设备",打印出“数据”。它的主对象是设备,是从输出设备
的视角来看待这个操作的。

那么如果我们改变一下视角,从数据的角度来看待这条语句呢?

以“数据”为主对象。我们用一段伪代码来改写一下这条语句。

“abc”.printedBy(System.out);

但是这里打印这个动作应该是属于设备的行为,
继续改进一下这段伪代码:

String("abc").call(System.out, "println");
------------       ----------  ----------
     |                  |          |
数据生成器           输出设备     动作   

对上述伪代码再进一步抽象如下:
DataProducer("abc").call(DataPrintConsumer);
------------------  ----  -------------- 
     |                |        |   
  生产者            通知    消费者      
  发布者            通知    订阅者
  被观察者          通知    观察者

这其实就是一个观察者模式嘛,或者叫订阅模式,或者叫生产者消费者模式。
再来看看这条语句Observable.just(“abc”).subscribe(System.out::println);
是不是好理解一些了呢?

参考列表

  • https://www.jianshu.com/p/69a6ae850736
  • https://www.jianshu.com/p/88aacbed8aa5
  • https://www.geeksforgeeks.org/system-out-println-in-java
  • https://blog.csdn.net/lipinganq/article/details/53427102
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值