组件化通信方法和系统与流程

xiaoxiao3月前  26


本发明涉及通信,尤其涉及一种组件化通信方法和系统。


背景技术:

1、在快速发展的互联网时代,android设备也在飞速的更新换代,在此同时也涌现出了不同的android应用程序,其规模和业务复杂度也随之不断增加。这就导致工程代码在不断的增加,项目结构也变的混乱,开发工程师在功能实现时经常会遇到项目编译缓慢、代码提交合并冲突、开发效率低下等情况。所以,组件化开发模式逐渐成为大中型项目的首要选择。

2、组件化开发将代码根据业务和功能的统一性和独特性拆分成不同的模块,这些模块之间相互独立,可以根据需求来任意组合,也可以单独运行。因为组件之间是相互独立的,那么组件组合使用的时候就会遇到跳转到另外一个组件中的页面、调用某个组件中的某个方法、以及跳转或者调用方法后的回调处理等情况。所以,如何进行组件间的通信成为一个新的问题。

3、现有的组件化通信方法包括事件总线、广播以及组件间路由等方式。其中,事件总线是实现基于驱动模式的方式之一,事件发送者将事件消息发送到一个事件总线上,事件订阅者向事件总线订阅和接收事件,然后接收事件响应处理。订阅者不仅可以接受和消费事件,它们本身也可以创建和发送事件。它是一种集中式事件处理机制,允许不同的组件之间进行通信而不需要互相依赖。常见的事件总线框架如:eventbus等。广播是android系统提供的一种跨组件通信的机制,组件a可以发送广播,而组件b可以注册广播接收器来接收广播并做出响应;广播可以在整个应用程序范围内传递消息。组件间路由是通过一个中心的路由器来管理组件之间的通信;每个组件都注册自己的路由规则,当需要与其他组件通信时,可以通过路由器来跳转到目标组件;常用的组件间路由库包括arouter和routerx等。这种方式可以灵活地管理组件之间的跳转和通信。

4、但是,事件总线使用过多会出现管理混乱,注册需要对应反注册,容易出现内存泄漏风险。使用广播的方式效率比较低,而且容易出现性能和安全问题。arouter等路由组件提供了可以直接跳转页面的api,但是传递参数需要使用字符串作为key,容易出现拼写错误的情况;或者在公共组件管理常量,这样会引起公共组件职责庞大和容易出现使用错误的情况。另外,没有直接调用另一组件的方法和获取回调的api。

5、基于此,需要一种新的解决方案。


技术实现思路

1、本发明的主要目的在于针对现有技术的缺点,提供一种组件化通信方法和系统。

2、为实现上述目的,本发明提供一种组件化通信方法,用于多个组件之间的通信,所述多个组件中包括通信连接于路由库的公共中间组件,所述组件化通信方法包括以下步骤:

3、由请求通信的组件向所述公共中间组件发起调用请求,所述调用请求包括所述请求通信的组件需要调用的目标组件的路由方法接口类;

4、根据所述路由方法接口类,获取所述目标组件的路由路径;

5、根据所述路由路径,获取所述目标组件的路由服务管理类;以及

6、在所述路由服务管理类不为空时,根据所述路由服务管理类,调用所述目标组件中的路由方法管理类,实现所述请求通信的组件对所述目标组件的所述调用请求。

7、在本发明提供的组件化通信方法中,在由请求通信的组件向所述公共中间组件发起调用请求的步骤之前还包括:

8、在所述公共中间组件内为每个组件声明路由注册路径管理类和路由方法接口类,所述路由注册路径管理类用于声明每个组件的路由路径,所述路由方法接口类用于声明路由方法;

9、在每个组件内建立路由方法管理类以实现与所述公共中间组件内的所述路由方法接口类中声明的所述路由方法。

10、在本发明提供的组件化通信方法中,在所述路由方法管理类中添加由所述路由注册路径管理类中声明的每个组件的路由路径。

11、在本发明提供的组件化通信方法中,在所述路由服务管理类为空时,所述方法还包括:

12、根据所述路由路径,进行降级的匹配容灾。

13、此外,为实现上述目的,本发明还提供一种组件化通信系统,包括公共中间组件和多个组件,所述多个组件连接于所述公共中间组件,所述公共中间组件通信连接于路由库,其中,所述公共中间组件用于在收到请求通信的组件发起的调用请求时,根据所述调用请求中包括的所述请求通信的组件需要调用的目标组件的路由方法接口类,获取所述目标组件的路由路径;根据所述路由路径,获取所述目标组件的路由服务管理类;在所述路由服务管理类不为空时,根据所述路由服务管理类,调用所述目标组件中的路由方法管理类,实现所述请求通信的组件对所述目标组件的所述调用请求。

14、在本发明提供的组件化通信系统中,所述公共中间组件还用于为每个组件声明路由注册路径管理类和路由方法接口类,所述路由注册路径管理类用于声明每个组件的路由路径,所述路由方法接口类用于声明路由方法;所述每个组件还用于建立路由方法管理类以实现与所述公共中间组件内的所述路由方法接口类中声明的所述路由方法。

15、在本发明提供的组件化通信系统中,在所述路由方法管理类中添加由所述路由注册路径管理类中声明的每个组件的路由路径。

16、在本发明提供的组件化通信系统中,在所述路由服务管理类为空时,所述公共中间组件还用于根据所述路由路径,进行降级的匹配容灾。

17、本发明还提供一种组件化通信装置,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的组件化通信方法的步骤。

18、本发明还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的组件化通信方法的步骤。

19、本发明提供的组件化通信系统和方法具有以下有益效果:本发明在多个组件与路由库之间增加一个公共中间组件,在公共中间组件中为每个组件建立一个路由方法接口类和路由服务管理类,在每个组件内建立对应的路由方法管理类;使用时,请求通信的组件向公共中间组件提供需要调用的组件的路由方法接口类,由公共中间组件根据该路由方法接口类获取到的路由路径来获取目标组件的路由服务管理类;再通过该路由服务管理类调用与之对应的路由方法管理类以实现对应的方法;由此,使用者只能调用暴露出来的接口方法,而不能直接调用和修改目标组件内的对应实现方法,如果有修改或者扩展,只用修改或新增接口方法,对应组件来对应实现即可,进而实现组件化应用程序之间更稳定、高效和便捷的通信。



技术特征:

1.一种组件化通信方法,用于多个组件之间的通信,其特征在于,所述多个组件中包括通信连接于路由库的公共中间组件,所述组件化通信方法包括以下步骤:

2.如权利要求1所述的组件化通信方法,其特征在于,在由请求通信的组件向所述公共中间组件发起调用请求的步骤之前还包括:

3.如权利要求2所述的组件化通信方法,其特征在于,在所述路由方法管理类中添加由所述路由注册路径管理类中声明的每个组件的路由路径。

4.如权利要求1所述的组件化通信方法,其特征在于,在所述路由服务管理类为空时,所述方法还包括:

5.一种组件化通信系统,其特征在于,包括公共中间组件和多个组件,所述多个组件连接于所述公共中间组件,所述公共中间组件通信连接于路由库,其中,所述公共中间组件用于在收到请求通信的组件发起的调用请求时,根据所述调用请求中包括的所述请求通信的组件需要调用的目标组件的路由方法接口类,获取所述目标组件的路由路径;根据所述路由路径,获取所述目标组件的路由服务管理类;在所述路由服务管理类不为空时,根据所述路由服务管理类,调用所述目标组件中的路由方法管理类,实现所述请求通信的组件对所述目标组件的所述调用请求。

6.如权利要求5所述的组件化通信系统,其特征在于,所述公共中间组件还用于为每个组件声明路由注册路径管理类和路由方法接口类,所述路由注册路径管理类用于声明每个组件的路由路径,所述路由方法接口类用于声明路由方法;所述每个组件还用于建立路由方法管理类以实现与所述公共中间组件内的所述路由方法接口类中声明的所述路由方法。

7.如权利要求6所述的组件化通信系统,其特征在于,在所述路由方法管理类中添加由所述路由注册路径管理类中声明的每个组件的路由路径。

8.如权利要求5所述的组件化通信系统,其特征在于,在所述路由服务管理类为空时,所述公共中间组件还用于根据所述路由路径,进行降级的匹配容灾。

9.一种组件化通信装置,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项的组件化通信方法的步骤。

10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至4中任一项的组件化通信方法的步骤。


技术总结
本发明公开了一种组件化通信方法,包括由请求通信的组件向公共中间组件发起调用请求,调用请求包括请求通信的组件需要调用的目标组件的路由方法接口类;根据路由方法接口类,获取目标组件的路由路径;根据路由路径,获取目标组件的路由服务管理类;以及在路由服务管理类不为空时,根据路由服务管理类,调用目标组件中的路由方法管理类,实现请求通信的组件对目标组件的调用请求。由此,使用者只能调用公共中间组件内暴露出来的接口方法,而不能直接调用和修改目标组件内的对应实现方法,如果有修改或者扩展,只用在公共中间组件内修改或新增接口,对应组件来对应实现即可,进而实现组件化应用程序之间更稳定、高效和便捷的通信。

技术研发人员:赵庭焜
受保护的技术使用者:深圳联友科技有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)