实现类的收集管理方法、装置、电子设备及计算机介质制造方法及图纸

技术编号:30187543 阅读:19 留言:0更新日期:2021-09-29 08:24
本公开实施例提供了一种实现类的收集管理方法、装置、电子设备及计算机介质,包括:通过第一注解对接口的实现类进行标记;通过第二注解对接口的容器类进行标记;在编译时,基于第一注解和第二注解,将接口的实现类填充到接口的容器类中。在本公开实施例中,由于第一注解标记了实现类所属的接口、第二注解标记了容器类用于收集哪个接口的实现类,因此实现了实现类和容器类之间的解耦,进而在编译时,基于第一注解和第二注解,将实现类填充到容器类中即可,不在需要手动添加对应的实现类或者是在容器类的构造函数中添加对应的实现类,减少了维护成本。维护成本。维护成本。

【技术实现步骤摘要】
实现类的收集管理方法、装置、电子设备及计算机介质


[0001]本公开涉及计算机
,具体而言,本公开涉及一种实现类的收集管理方法、装置、电子设备及计算机介质。

技术介绍

[0002]在实际业务中,存在很多实现类收集方面的业务,比如长连接的business/channel注册填充到Manager(容器类),接收到的消息注册到容器类中等等。现有方式中填充注册实现类的方式有两种,一种是通过接口,将各个实现类添加到管理类中,一种是每个实现类注册到容器类中。但是,上述两种方式有以下两个缺点:第一,容器类与实现类之间没有解耦,即容器类需要知道有哪些实现类。第二,一般需要收集的实现类是分布在各个模块或组件中的,如果想将实现类注册到容器类中,需要在手动添加或者是在容器类的构造函数中写明具体的实现类,此时填充实现类的代码存在维护成本。

技术实现思路

[0003]提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0004]第一方面,本公开实施例提供了一种实现类的收集管理方法,该方法包括:
[0005]通过第一注解对接口的实现类进行标记;
[0006]通过第二注解对接口的容器类进行标记;
[0007]在编译时,基于第一注解和第二注解,将接口的实现类填充到接口的容器类中。
[0008]第二方面,本公开实施例提供了一种实现类的收集管理装置,该装置包括:
[0009]标记模块,用于通过第一注解对接口的实现类进行标记,以及通过第二注解对接口的容器类进行标记;
[0010]填充模块,用于在编译时,基于第一注解和第二注解,将接口的实现类填充到接口的容器类中。
[0011]第三方面,本公开提供了一种电子设备,该电子设备包括处理器和存储器;
[0012]存储器,用于存储计算机操作指令;
[0013]处理器,用于通过调用计算机操作指令,执行如本公开实施例的第一方面的任一实施例中所示的方法。
[0014]第四方面,本公开提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开实施例的第第一方面的任一实施例中所示的方法。
[0015]本公开实施例提供的技术方案带来的有益效果是:
[0016]在本公开实施例中,可以通过第一注解和第二注解的方式分别对接口的实现类和容器类进行标记,进而在编译时,由于第一注解标记了实现类所属的接口、第二注解标记了
容器类用于收集哪个接口的实现类,因此实现了实现类和容器类之间的解耦,进而在编译时,基于第一注解和第二注解,将实现类填充到容器类中即可,不在需要手动添加对应的实现类或者是在容器类的构造函数中添加对应的实现类,减少了维护成本。
附图说明
[0017]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0018]图1为本公开的实施例中一种实现类的收集管理方法的流程示意图;
[0019]图2为本公开的实施例中一种实现类的收集管理装置的结构示意图;
[0020]图3为本公开的实施例中一种电子设备的结构示意图。
具体实施方式
[0021]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0022]应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0023]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0024]需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0025]需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0026]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0027]本公开的实施例提供了一种实现类的收集管理方法,如图1所示,该方法可以包括:
[0028]步骤S110,通过第一注解对接口的实现类进行标记。
[0029]步骤S120,通过第二注解对接口的容器类进行标记。
[0030]接口即Interface,是Java中重要的概念之一,是抽象方法的集合,接口通常以interface来声明,接口无法直接实例化,但是接口可以指向它的实现类对象。接口中定义规范,实现类来确定规范如何运行的,也就是接口的具体实现方法,一个接口可以有一个或者多个实现类。比如,一个接口A定义了一个“吃”的方法,实现类则是给定了“吃”的具体实
现,例如A1和A2实现A接口,A1为“吃饭”,A2为“吃鱼”,则A1和A2为接口A的实现类,在需要调用“吃饭”的方法时,调用接口A的实现类即可,即实例化(new)一个A1,如果需要调用所有的“吃”的方法,则调用接口A即可,通过接口A实现接口A的所有实现类的调用。
[0031]容器类即管理类,用于实现对接口的所有实现类的管理,一个容器类对应一个接口,为了实现对接口的所有实现类的收集(也就是管理),对于需要调用的各实现类,可以通过第一注解标记,此时可以基于该注解可以知晓每个实现类是哪个接口的实现类;同理,对于每个容器类,可以通过第二注解标记,基于该注解可以知晓每个容器类是需要调用哪个接口的实现类。
[0032]其中,通过第一注解对接口的实现类进行标记、以及通过第二注解对接口的容器类进行标记的实现方式本公开实施例不限定。例如,当通过第一注解对接口的实现类进行标记时,可以采用@Register注解、@IntKeyRegister或@StringKeyRegister注解等方式对接口的实现类进行标记;当通过第二注解对接口的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现类的收集管理方法,其特征在于,包括:通过第一注解对接口的实现类进行标记;通过第二注解对所述接口的容器类进行标记;在编译时,基于所述第一注解和所述第二注解,将所述接口的实现类填充到所述接口的容器类中。2.根据权利要求1所述的方法,其特征在于,所述实现类为列表List存储类型的实现类或采用键值K-V存储方式存储在映射表中KV存储类型的实现类,其中,所述K为实现类的标识,所述V为实现类的实例;所述通过第一注解对接口的实现类进行标记,包括:采用与所述实现类的存储类型对应的第一注解对所述接口的实现类进行标记。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:声明所述容器类的存储空间和初始化函数;所述在编译时,基于所述第一注解和所述第二注解,将所述接口的实现类填充到所述接口的容器类中,包括:基于所述第一注解和所述第二注解,确定所述实现类和所述容器类的对应关系;在编译时,基于所述对应关系,通过调用所述初始化函数将所述实现类填充到所述容器类的存储空间。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:通过第三注解对所述容器类的存储空间进行标记,通过第四注解对所述容器类的初始化函数进行标记;其中,所述第三注解标记了所述存储空间的数据存储类型,所述第四注解标记了所述初始化函数是用于将所述接口的实现类填充到所述存储空间。5.根据权利要求3所述的方法,其特征在于,在编译时,将所述接口的实现类填充到所述接口的容器类中,包括:若所述接口的实现类为List存储类型的实现类,将所述实现类的实例填充到所述容器类的存储空间;若所述接口的实现类为KV存储类型的实现类,将所述映射表中实现类的K填充到所述容器类的存储空间。6.根据权利要求5所述的方法,其特征在于,对于List存储类型的实现类,若所述实现类的构造函数为私有函数,所述通过第二注解对所述接口的容器类进行标记时,所述方法还包括;声明所述实现类的实例获得函数,并通过第五注解进行标记,所述第五注解标记了所述实现类为单例的实现类;所述通过调用所述初始化函数,将所述实现类的实例填充到所述容器类的存储空间,包括:通过调用所述初始化函数,将所述实现类的实例获得函数填...

【专利技术属性】
技术研发人员:徐志邢雨辰
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1