谷歌Java开发工具包Guava之EventBus事件总线_chinesszz的博客-CSDN博客

事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。是不是觉得有点难,不要着急,文章后面会让你一眼让你学会使用

谷歌Java开发工具包Guava之EventBus事件总线

这里面就涉及了两个主要事件:

1. 注册事件(添加订阅者)

2. 发起事件通知,依次通知这些订阅者

eg:

谷歌Java开发工具包Guava之EventBus事件总线

1. 你某信上关注了一个叫chinesszz的丁悦好,这个丁悦好还被A,B,C丁悦了,当chinesszz的编辑发送一个消息,那么这个消息,将会被推送到,所有丁悦者的手机客户端上.画上图比较难,但是代码实现却非常简单,直接看代码,只要你会用List会遍历集合就OK

谷歌Java开发工具包Guava之EventBus事件总线

2. 上面的是不是很简单呢? 但是生产中可不能有这样的写发,因为扩展性太差了.

在考虑扩展性的时候,一定要思考两个原则 1. 开闭原则 2.里式替换原则

什么是开闭原则呢? 简单的说就是:对扩展开放,对修改关闭, 而里式替换原则理论支持了这一说法,即子类要能替换父类,这样子类就可以在父类的基础上,扩展. (不是本篇重点,一笔带过)

谷歌Java开发工具包Guava之EventBus事件总线

设置主题,由此可见,订阅者模式是非常简单的,即:将订阅者放入指定集合,依次遍历执行通知方法即可

谷歌Java开发工具包Guava之EventBus事件总线

Guava中EventBus实现

怎么样订阅者模式,或者是观察者模式是不是很好理解

但是我们还是觉得这种方法,太复杂了,比如我们为了扩展性,就创建了这么多类. 那么我们怎么更简单呢? 接下来介绍EventBus使用,只要掌握一个注解@Subscribe就可以了.

谷歌Java开发工具包Guava之EventBus事件总线

怎么样是不是很简单呢? 点击关注小编一下? 小编会继续分享更多小技巧给大家!

下篇文章会分享谷歌Java开发工具包之Cache缓存, 并根据其原理,自己写一套属于自己的缓存框架,用到的知识有: java的四种引用,即:强引用,弱引用,软引用,虚引用. 如果小伙伴们还不了解,请看移步到,小编的另一篇文章,先预习一下.《大部分Java程序猿程序猿所不了解的引用关系》


原网址: 访问
创建于: 2021-01-21 17:24:30
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论