谷歌Java开发工具包Guava之EventBus事件总线
事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。是不是觉得有点难,不要着急,文章后面会让你一眼让你学会使用
这里面就涉及了两个主要事件:
1. 注册事件(添加订阅者)
2. 发起事件通知,依次通知这些订阅者
eg:
1. 你某信上关注了一个叫chinesszz的丁悦好,这个丁悦好还被A,B,C丁悦了,当chinesszz的编辑发送一个消息,那么这个消息,将会被推送到,所有丁悦者的手机客户端上.画上图比较难,但是代码实现却非常简单,直接看代码,只要你会用List会遍历集合就OK
2. 上面的是不是很简单呢? 但是生产中可不能有这样的写发,因为扩展性太差了.
在考虑扩展性的时候,一定要思考两个原则 1. 开闭原则 2.里式替换原则
什么是开闭原则呢? 简单的说就是:对扩展开放,对修改关闭, 而里式替换原则理论支持了这一说法,即子类要能替换父类,这样子类就可以在父类的基础上,扩展. (不是本篇重点,一笔带过)
设置主题,由此可见,订阅者模式是非常简单的,即:将订阅者放入指定集合,依次遍历执行通知方法即可
Guava中EventBus实现
怎么样订阅者模式,或者是观察者模式是不是很好理解
但是我们还是觉得这种方法,太复杂了,比如我们为了扩展性,就创建了这么多类. 那么我们怎么更简单呢? 接下来介绍EventBus使用,只要掌握一个注解@Subscribe就可以了.
怎么样是不是很简单呢? 点击关注小编一下? 小编会继续分享更多小技巧给大家!
下篇文章会分享谷歌Java开发工具包之Cache缓存, 并根据其原理,自己写一套属于自己的缓存框架,用到的知识有: java的四种引用,即:强引用,弱引用,软引用,虚引用. 如果小伙伴们还不了解,请看移步到,小编的另一篇文章,先预习一下.《大部分Java程序猿程序猿所不了解的引用关系》吧
文章来源: springlearn.blog.csdn.net,作者:西魏陶渊明,版权归原作者所有,如需转载,请联系作者。
原文链接:springlearn.blog.csdn.net/article/details/79296259
- 点赞
- 收藏
- 关注作者
评论(0)