程序组件耦合处理方法和相关装置的制造方法

文档序号:9200203阅读:377来源:国知局
程序组件耦合处理方法和相关装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体涉及一种程序组件耦合处理方法和相关装置。
【背景技术】
[0002]面向对象程序开发方式是目前主流的程序开发方式之一,其优点是容易实现模块化,缺点是模块之间的交互比较困难。因为模块无法脱离整体程序而独立的存在,因此模块之间通常需要相互调用,而调用带来耦合。这种耦合是程序本质复杂性的一部分。
[0003]很多应用程序本身非常庞大,涉及的模块通常较多,各个模块之间的交互变得异常复杂。很多现有技术中,主要采用消息实现应用程序的各模块之间的耦合问题。举例来说,应用程序中的模块A向外发布消息,但模块A并不关心接收该消息的对象;模块B接收上述消息,但模块B不关心发布上述消息的对象。
[0004]本发明的发明人在研究和实践过程中发现,现有技术至少存在以下的技术问题:由于程序中的各个模块之间可能经常要进行双向通信、一对多的通信等等复杂消息耦合,这使得要分析数据处理流程的来龙去脉非常困难,需跟踪大量的异步消息;且由于难以获悉模块之间的耦合关系,使得若要修改数据处理流程则非常困难,非常容易出现一些意想不到的流程分支,且难以进行问题定位和重现。

【发明内容】

[0005]本发明实施例提供程序组件耦合处理方法和相关装置,以提高程序组件之间耦合关系的可控性和可跟踪性,进而简化程序代码的复杂度。
[0006]为解决上述技术问题,本发明实施例提供以下技术方案:
[0007]本发明实施例一方面提供一种程序组件耦合处理方法,可包括:
[0008]对组件容器和N个组件进行实例化;
[0009]将实例化之后的所述N个组件注册到实例化之后的所述组件容器之中;
[0010]当第一组件之中的组件调用逻辑被触发,则通过所述第一组件查询所述组件容器之中是否注册有第二组件,其中,所述组件调用逻辑与所述第二组件之间具有映射关系;若查询到所述组件容器之中注册有第二组件,则通过所述组件容器获得所述第二组件的指针,并基于所述第二组件的指针调用所述第二组件执行相应的操作,其中,所述N为正整数,所述第一组件为所述N个组件之中的其中一个组件。
[0011]本发明实施例另一方面提供一种程序组件耦合处理装置,可包括:
[0012]实例化单元,用于对组件容器和N个组件进行实例化;
[0013]注册单元,用于将实例化之后的所述N个组件注册到实例化之后的所述组件容器之中;
[0014]处理单元,用于当第一组件之中的组件调用逻辑被触发,则通过所述第一组件查询所述组件容器之中是否注册有第二组件,其中,所述组件调用逻辑与所述第二组件之间具有映射关系;若查询到所述组件容器之中注册有第二组件,则通过所述组件容器获得所述第二组件的指针,并基于所述第二组件的指针调用所述第二组件执行相应的操作,其中,所述N为正整数,所述第一组件为所述N个组件之中的其中一个组件。
[0015]由上可见,本发明实施例的方案将程序模块组件化,将实例化之后的若干个组件注册到实例化之后的组件容器之中,当已注册到组件容器之中的某个组件之中的某组件调用逻辑被触发,可基于注册关系通过该某个组件查询组件容器之中是否注册有与上述某组件调用逻辑具有映射关系的另一组件;若查询到组件容器之中注册有另一组件,则通过组件容器获得该另一组件的指针,并基于该另一组件的指针调用该另一组件执行相应的操作。通过引入组件容器解耦了程序组件之间的消息耦合关系,组件间无需通过消息耦合;由于是利用获得的组件指针来调用相应组件,因此组件之中也无需包含被调用的组件的上下文逻辑,而通过组件容器可容易的跟踪到组件之间的调用耦合关系,可见上述机制有利于提高程序组件之间耦合关系的可控性和可跟踪性,进而简化程序代码的复杂度。
【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本发明实施例提供的一种程序组件耦合处理方法的流程示意图;
[0018]图2_a是本发明实施例提供的另一程序组件耦合处理方法的流程示意图;
[0019]图2_b是本发明实施例提供的一种组件注册示意图;
[0020]图2-c是本发明实施例提供的另一种组件注册示意图;
[0021]图2-d是本发明实施例提供的另一种组件注册示意图;
[0022]图2_e是本发明实施例提供的另一种组件注册示意图;
[0023]图3本发明实施例提供的一种程序组件耦合处理装置的示意图;
[0024]图4本发明实施例提供的一种计算节点的示意图。
【具体实施方式】
[0025]本发明实施例提供程序组件耦合处理方法和相关装置,以提高程序组件之间耦合关系的可控性和可跟踪性,进而简化程序代码的复杂度。
[0026]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0028]本发明一种程序组件耦合处理方法的一个实施例,其中,一种程序组件耦合处理方法,可以包括:对组件容器和N个组件进行实例化;将实例化之后的上述N个组件注册到实例化之后的上述组件容器之中;当第一组件之中的组件调用逻辑被触发,则通过上述第一组件查询上述组件容器之中是否注册有第二组件,其中,上述组件调用逻辑与上述第二组件之间具有映射关系;若查询到上述组件容器之中注册有第二组件,则通过上述组件容器获得上述第二组件的指针,并基于上述第二组件的指针调用上述第二组件执行相应的操作,上述N为正整数,上述第一组件为上述N个组件之中的其中一个组件。
[0029]请参见图1,图1为本发明的一个实施例提供的一种程序组件耦合处理方法的流程示意图。如图1所示,本发明的一个实施例提供的一种程序组件耦合处理方法可包括以下内容:
[0030]101、对组件容器和N个组件进行实例化。
[0031]102、将进行实例化之后的上述N个组件注册到进行实例化之后的上述组件容器之中。
[0032]在本发明的一些实施例中,上述将进行实例化之后的上述N个组件注册到进行实例化之后的上述组件容器之中,可以包括:将实例化之后的上述N个组件的指针和组件类型标识注册到实例化之后的上述组件容器之中,或者,将实例化之后的上述N个组件的指针索引和组件类型标识注册到实例化之后的上述组件容器之中。
[0033]在本发明的另一些实施例中,上述将进行实例化之后的上述N个组件注册到进行实例化之后的上述组件容器之中,可以包括:将实例化之后的上述N个组件的指针和组件标识注册到实例化之后的上述组件容器之中,或者,将实例化之后的上述N个组件的指针索引和组件标识注册到实例化之后的上述组件容器之中。
[0034]其中,组件的指针索引是能够索引到该组件的指针的各种信息,例如可以是组件的指针相对于某个地址的偏移量,或者其它可以能够索引到该组件的指针的信息。
[0035]例如,上述将实例化之后的上述N个组件的指针和组件类型标识注册到实例化之后的上述组件容器之中,可包括:在实例化之后的上述组件容器中保存N条注册记录,上述N条注册记录和上述N个组件一一对应,其中,上述N条注册记录中与第一组件对应的注册记录中记录有上述第一组件的指针和组件类型标识。即:上述N条注册记录中与每个组件对应的注册记录中记录有该每个组件的指针和组件类型标识。
[0036]又例如,上述将实例化之后的上述N个组件的指针索引和组件类型标识注册到实例化之后的上述组件容器之中,包括:在实例化之后的上述组件容器中保存N条注册记录,其中,上述N条注册记录和上述N个组件一一对应,上述N条注册记录中与第一组件对应的注册记录中记录有上述第一组件的指针索引和组件类型标识。即:上述N条注册记录中与每个组件对应的注册记录中记录有该每个组件的指针索引和组件类型标识。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1