[发明专利]基于RxJava构建事件总线RxBus的方法在审
申请号: | 201811115266.5 | 申请日: | 2018-09-25 |
公开(公告)号: | CN109284098A | 公开(公告)日: | 2019-01-29 |
发明(设计)人: | 胡敏 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 李凌峰 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事件总线 主题对象 注销 标志参数 发布事件 构建 订阅 代码混淆 单例模式 定义事件 发布内容 软件开发 主题映射 传入的 总线 发布 追踪 测试 返回 创建 | ||
本发明涉及软件开发领域,克服EventBus方法实现事件的通知和订阅时难以测试追踪且不能进行代码混淆问题,提出一种基于RxJava构建事件总线RxBus的方法,包括定义事件总线类,记该事件总线类为RxBus类,RxBus类里定义了生成RxBus类的实例方法、主题映射对象、注册方法、注销方法和发布事件方法;生成RxBus类的实例方法用于以单例模式生成RxBus类的实例;注册方法用于创建主题对象,建立主题对象与传入的类标志参数的联系,返回Observable对象;注销方法用于注销相关的主题对象;发布事件方法用于发布以类标志参数相对应的主题来发布内容。本发明适用于RxJava框架中事件的订阅和发布。
技术领域
本发明涉及软件开发领域,特别涉及一种基于RxJava构建事件总线RxBus的方法。
背景技术
2012年Netflix为了满足他们庞大的用户群体决定重新设计架构来减少REST服务接口调用次数,取代几十次的REST服务接口的调用,让客户端自己处理需要的数据,他们决定基于客户端需求创建一个专门优化过的REST服务接口的调用。为实现该目标,他们决定尝试响应式,将.NET Rx迁移到JVM上,由此RxJava诞生,RxJava是一个在JVM上实用可观测的出列来组成异步的基于事件的程序的库,采用的是响应式编程框架和观察者设计模式。现有的事件的通知和订阅采用的是EventBus来实现,该实现方法的代码阅读性较低、难以测试追踪且不能进行代码混淆。
发明内容
本发明所要解决的技术问题是:克服EventBus方法实现事件的通知和订阅时难以测试追踪且不能进行代码混淆问题,提出一种基于RxJava构建事件总线RxBus的方法。
本发明解决上述技术问题,采用的技术方案是:
基于RxJava构建事件总线RxBus的方法,包括定义事件总线类,记为RxBus类,RxBus类里定义了主题映射对象、生成RxBus类的实例方法、注册方法、反注册方法和发布事件方法;
所述生成RxBus类的实例方法用于以单例模式生成RxBus类的实例;
所述主题映射对象为“ConcurrentHashMap<Object,List<Subject>>”类型的对象,记为subjectMapper;
所述注册方法包括:将所述注册方法的形式参数中的类标志作为参数来调用subjectMapper的get方法获得对应的List<Subject>类型的数组列表;若所述数组列表为空,则创建该数组列表,并将传入的类标志参数和数组列表存入subjectMapper;创建新的PublishSubject对象并将其转换为SerializedSubject对象,将SerializedSubject对象加入数组列表,返回该SerializedSubject对象并将其转换为Observable对象;
所述反注册方法包括:将所述反注册方法的形式参数中的Object类型的类标志作为参数来调用subjectMapper的get方法获得对应的List<Subject>类型的数组列表,如果该数组列表不为空,则所述数组列表移除所述反注册方法的形式参数中的Observable类型的对象,否则,移除subjectMapper中与传入的类标志参数对应的List<Subject>;
所述发布事件方法包括:将所述发布事件方法的形式参数中的类标志参数作为参数来调用subjectMapper的get方法获得对应的List<Subject>类型的数组列表,将所述数组列表内所有Subject对象依次触发onNext方法来发布事件,并将所述发布事件方法的形式参数中的Object类型的发布内容作为onNext方法的参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811115266.5/2.html,转载请声明来源钻瓜专利网。