在Spring-Web 5.0中使用了响应式编程的范式,所以有必要先对响应式编程作一番理解和探究。这篇中我就先谈谈我的理解,下一篇再说一下这个范式的原理和实现。
看了一些响应式编程的文章和书籍,总体上有个感觉,就是这个范式又是一个对原有概念的抽象总结并加以改进的结果。在响应式编程中,没有一个概念是我们没有见过的。
首先是流的概念,在学core java的时候就知道有流,而在响应式编程里,不光是可以把数据可以看成流,还有如点击事件、请求、响应、各种集合队列等等都可以作为流来处理。一个最简单的响应式编程的原型就是前端开发中经常遇到的对与事件的处理,区别就是事件处理就是只对一个具体的事件进行处理,而不是对所有的事件进行响应,意思就是说它没有形成流而只是一个点。(可能说的不太清楚,见谅!水平有限。)但是对应前端中的事件驱动模型,我们已经熟悉的不能再熟悉了。
再有就是观察者模式,在程序设计中这个模式我们肯定用了不止百遍,那响应式编程其实就是对于观察者模式的扩展应用。观察者模式是对一个点的观察,但响应式编程是对一个流的观察。可以说是把千百个观察者模式组合在一起,就是响应式编程(当然有些夸张,但谈感想,没问题,我认为)。
最后就是响应式编程解决的问题,在编程范式方面,我理解有两个具体的点,一个就是极大的改善了回调嵌套的问题,另外一个就是使我们的编程的关注点从代码命令行的逻辑顺序转变为响应事件的逻辑关系。