前面把icode9-Java函数式编程的由来和最主要的核心知识点讲完了。包括比较难懂的Lambda表达式是怎么演变而来的也全部都撸了一遍。Lambda表达式这种编程方式的确是让人不太习惯,尤其是之前那种纯面向对象编程的思维模式一旦建立起来之后,想要再接受这种比较奇怪的语法和编程模式,确实是非常困难。但Lambda表达式和流式编程的出现,又催生了另一门新的技术:反应式编程。
《三国演义》中说:“天下大势,分久必合,合久必分”。在科技领域也是一样。之前没有科学的时候,由占星术、炼金术、神学等催生出了一系列的自然科学,像什么物理、化学、数学等等。等到这些学科演变的差不多了之后,又开始了逐步的融合。
反应式编程就和这有点类似,它是融合了Lambda表达式、流式编程和观察者模式的一种新的编程范式。
就像很多反应式编程的技术书、官网和资料里面说的,“一切皆是流”,比如我们其实无时不刻都在呼吸对吧,而且吸入和呼出的都是空气,也就是气流,这个很好理解哈~然后我们的嘴巴会去吃东西,就是食物吧,它也会变成食物流,其他的也是一样,像我们看到的外部的风景啊、人物啊、抖音里面的视频啊,都是视觉流,还有我们和其他人之间的谈话、聊天什么的,都是语音流,而且这种视觉流和语音流很多都是持续的,源源不断的。
而且这些流就是我们生活中每天都需要面对的各种各样的事情,比如吃了东西,呼吸了新鲜空气,就会让我们获得能量,就不会觉得饿或者没力气了,或者看到外面漂亮的风景,小哥哥小姐姐,以及美食,或者说和朋友谈话、聊天之后就会觉得很愉快,就能引起心理和生理反应,或者说比如和谁一起吃工作餐谈话,谈的不愉快就直接结束,所以这里有个红叉叉,正常结束的话就是一个竖线,比如这段时间对吃的、帅哥美女、聊天或者抖音都没啥兴趣,走冷淡风,就不再对这些外部事件产生反应了,所谓的反应式编程里面所说的反应,其实就是一种对行为的响应。
如果把代码想象成一个人的话,那么那些外部的事情用计算机专业的话来说叫事件,比如用户点击页面按钮发送消息、键盘输入、物联网设备不断地发送信号等等,都是各种输入流,而且程序需要对这些各种事件都做出响应,或者反应,而且要及时。用以前的方式也是可以的,不过如果这种事件很多,涉及的线程、回调就会很多,所以就需要一种新的编程方式来处理这种叫做mashup的混合式Web应用开发。关于反应式编程的一种正式的描述可以看反应式编程官方的《反应式宣言》
刚才说的只是反应式编程一些概念性或者是感性的认识,真正要了解反应式编程,还是要看代码:
public static void main(String[] args) { Person person = new Person("zhangsan", 18); // 数据怎么来就怎么处理,处理完后就结束 Observable.just("1", 2, true, 0.618, person, new String("haha")) .subscribe(System.out::println); }
运行后可以看到,不管是什么样的数据类型,都会被just给展示出来,这就是「流」的概念。而在以前的Java集合List中,肯定是不可能有这种骚操作的。
标签:java,函数,学习,系统,语言,平台,方法,安装, 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。