响应式编程思想与实战

1、响应式编程思想

  概念介绍

    响应式编程是一种面向数据流变化传播编程范式

      数据流:只能以事先规定好的顺序被读取一次的数据的一个序列

      变化传播:类似观察者模式,变化了要通知别人

      编程范式:计算机编程的基本风格或典范模式

  实例讲解

    数据流是什么?

      1、在计算机中是数据

      2、在现实中可以是任意对象组成的有顺序的队列

      3、就像看电影进场一样,一个接一个的检票

    何为变化传播?

      饭店吃饭(点菜的变化->下单的变化->做菜的变化)

    What is 编程范式?

      就像做饭,有炒、烤、煮等等

   终结案例

    工厂流水线

      数据流----->在履带上运送的要加工的物品

      变换传播----->把前一个环节的加工结果传到下一个环节

      编程范式------>每种物品的加工方式不同,流水线就不同

2、RxJava基本元素

  简单介绍及回顾RxJava

    RxJava简介

      A library for composing asynchronous and event-based programs by using observable sequences.

        asynchronous

          1. 异步的,RxJava是一个异步的库

            2.  基于回调的

        event-based  

          1. 基于事件的

          2.  事件分发的库,消息传递的库

  RxJava1五大元素

    Observable

      1.   观察得到的--------被观察者

      2.   通过Observable创建一个可观察的序列(create方法)

      3.   通过Subscribe去注册一个观察者

    Observer

      1.  用于接受数据------观察者

      2.  作为Observable的Subscribe方法的参数

    Subscription

      1.  订阅,用于描述被观察者和观察者之间的关系

      2.  取消订阅和获取订阅的状态

    OnSubscribe

      1.   当订阅时会触发此接口回调

      2.   在Observable内部,实际作用是向订阅者发送数据

    Subscribe-----------------订阅

      1.   实现了Observer和Subscription

      2.   只有自己才能阻止自己

  背压概念

    1. 异步环境下产生的问题

    2. 发送和处理速度不统一

    3. 是一种流速控制解决策略

  RxJava2无背压五大元素    

     Observable

      1.   观察得到的--------被观察者,不支持背压

      2.   通过Observable创建一个可观察的序列(create方法)

      3.   通过Subscribe去注册一个观察者

     Observer

      1.  用于接受数据------观察者

      2.  作为Observable的Subscribe方法的参数

     Disposable

      1.  和RxJava1的Subscription的作用相当

      2.  取消订阅和获取订阅的状态

     ObservableOnSubscribe

      1.   当订阅时会触发此接口回调

      2.   在Observable内部,实际作用是向订阅者发送数据

     Emitter

      1.   一个发射数据的接口,和Observer的方法类似

      2.  本质是对Observer和Subscribe的包装

  RxJava2有背压五大元素

    Flowable

      1.  易流动---------被观察者,支持背压

      2.   通过Flowable创建一个可观察的序列(create方法)

      3.   通过Subscribe去注册一个观察者

    Subscribe

      1.  一个单独接口,和Observer的方法类似

      2.  作为Flowable的Subscribe方法的参数 

     Subscription

      1.  订阅,与RxJava1的有所不同

      2.  支持背压,有用于背压的request方法

    FlowableOnSubscribe

      1.  当订阅时会触发此接口回调

      2.  在Flowable内部,实际作用是向观察者发射数据

     Emitter

      1.   一个发射数据的接口,和Observer的方法类似 

      2.  本质是对Observer和Subscribe的包装

 

    

猜你喜欢

转载自www.cnblogs.com/zhaojianhua/p/9300751.html
今日推荐