CN108255545B - 组件间的功能调用方法、装置及组件化架构系统 - Google Patents

组件间的功能调用方法、装置及组件化架构系统 Download PDF

Info

Publication number
CN108255545B
CN108255545B CN201611235715.0A CN201611235715A CN108255545B CN 108255545 B CN108255545 B CN 108255545B CN 201611235715 A CN201611235715 A CN 201611235715A CN 108255545 B CN108255545 B CN 108255545B
Authority
CN
China
Prior art keywords
component
function
class
interface
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611235715.0A
Other languages
English (en)
Other versions
CN108255545A (zh
Inventor
谌炫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611235715.0A priority Critical patent/CN108255545B/zh
Publication of CN108255545A publication Critical patent/CN108255545A/zh
Application granted granted Critical
Publication of CN108255545B publication Critical patent/CN108255545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Abstract

本申请实施例公开了一种组件间的功能调用方法及装置,以及一种组件化架构系统。所述组件间的功能调用方法包括:第一组件向消息分发组件发送对第二组件的功能调用请求;消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;第二组件通过所述接收方执行被请求的功能。采用上述方法,解决现有的组件间功能调用方式导致的组件间彼此耦合、组件复用性低的问题。

Description

组件间的功能调用方法、装置及组件化架构系统
技术领域
本申请实施例涉及组件间的访问方法,具体涉及一种组件间的功能调用方法。本申请实施例同时涉及一种组件间的功能调用装置,以及一种组件化架构系统。
背景技术
在软件开发过程中,为了实现多人团队协同工作和多业务开发并行进行,通常需要对软件产品进行组件划分以便于并行开发,在完成开发后,通过将各组件的集成以形成完整的软件产品。其中,所述组件通常是指完成独立或者相对独立功能的代码集合,也可以称为功能组件。
在上面描述的软件开发过程中,由于不同组件存在着依赖关系,所以常常采用引入接口头文件的调用方式,例如,在iOS开发和Android开发中,将各组件打包成静态库或者动态库的方式集成在一个软件产品中,组件之间通过引用各库的接口头文件实现相互调用。
采用上述引用接口头文件的调用方式,虽然可以实现组件间的功能调用,但也存在以下缺陷:由于作为调用方的组件需要引用作为被调用方的组件的接口头文件,造成了组件间的侵入式调用,使得被调用方和调用方产生了耦合,在产生耦合的情况下,如果想要复用某一个组件,必然也要牵扯出这个组件依赖的其他组件,从而大大降低了组件的复用性,影响软件产品的开发效率。
发明内容
本申请实施例提供一种组件间的功能调用方法和装置,以解决现有的组件间功能调用方式导致的组件间彼此耦合、组件复用性低的问题。本申请实施例还提供一种组件化架构系统。
本申请实施例提供一种组件间的功能调用方法,包括:
第一组件向消息分发组件发送对第二组件的功能调用请求;
消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;
第二组件通过所述接收方执行被请求的功能。
可选的,所述消息分发组件采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方,包括:
消息分发组件通过编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,并将该类提供的相应方法作为第二组件中的接收方;
消息分发组件通过调用所述相应方法,向第二组件转发所述功能调用请求;
所述第二组件通过所述接收方执行被请求的功能,包括:第二组件通过被调用的所述相应方法执行被请求的功能。
可选的,所述消息分发组件通过编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,包括:
消息分发组件获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法。
可选的,所述消息分发组件包括:对应于第二组件的接口模块和反射模块。
可选的,所述第一组件向消息分发组件发送对第二组件的功能调用请求,包括:
第一组件调用消息分发组件的所述接口模块提供的对应于所述功能调用请求的接口;
所述消息分发组件获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法,包括:
接口模块的所述接口接收所述功能调用请求后,根据预设的映射关系,确定第二组件中对应所述功能调用请求的类名称和方法名称;
接口模块的所述接口调用所述反射模块,并至少将所述类名称和所述方法名称传递给所述反射模块;
反射模块根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法;
所述消息分发组件通过调用所述相应方法,向第二组件转发所述功能调用请求的步骤,由消息分发组件中的反射模块执行。
可选的,所述类包括:接口类,所述相应方法包括:相应接口方法。
可选的,所述第二组件通过被调用的所述相应方法执行被请求的功能,包括:
被调用的所述相应接口方法创建对应被请求功能的对象,并通过调用该对象的方法,执行所述被请求功能。
可选的,在所述第二组件通过所述接收方执行被请求的功能之后,还包括:
第二组件将执行结果,经由消息分发组件返回给第一组件。
可选的,在被调用的所述相应接口方法创建对应被请求功能的对象、并通过调用该对象的方法执行所述被请求功能之后,还包括:对应所述被请求功能的执行结果,依次经由第二组件中所述该对象的方法、第二组件的所述接口方法、消息分发组件的反射模块、消息分发组件的接口模块,返回给第一组件。
本申请实施例还提供一种组件间的功能调用装置,包括:
请求发送单元,用于由第一组件向消息分发组件发送对第二组件的功能调用请求;
消息分发单元,用于由消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;
功能执行单元,用于由第二组件通过所述接收方执行被请求的功能。
可选的,所述消息分发单元具体用于在接收所述功能调用请求后,通过编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,并将该类提供的相应方法作为第二组件中的接收方;通过调用所述相应方法,向第二组件转发所述功能调用请求;
所述功能执行单元,具体用于由第二组件通过被调用的所述相应方法执行被请求的功能。
可选的,所述消息分发单元,包括:对应于第二组件的接口子单元和反射子单元。
可选的,所述请求发送单元,具体用于由第一组件调用消息分发组件的所述接口子单元提供的对应于所述功能调用请求的接口;
所述接口子单元,用于由所述接口接收所述功能调用请求、并根据预设的映射关系,确定第二组件对应所述功能调用请求的类名称和方法名称,并触发反射子单元工作,以及在触发时至少将所述类名称和所述方法名称传递给反射子单元;
所述反射子单元,用于根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法,并通过调用所述相应方法,向第二组件转发所述功能调用请求。
可选的,所述类包括:接口类,所述相应方法包括:相应接口方法。
可选的,所述功能执行单元,具体用于由被调用的所述相应接口方法创建对应被请求功能的对象,并通过调用该对象的方法,执行所述被请求功能。
本申请实施例还提供一种组件化架构系统,包括:第一组件,第二组件,以及消息分发组件;
所述第一组件,用于向消息分发组件发送对第二组件的功能调用请求;
所述消息分发组件,用于接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;
所述第二组件,用于通过所述接收方执行被请求的功能。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供的一种组件间的功能调用方法,由第一组件向消息分发组件发送对第二组件的功能调用请求,消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方,并由第二组件通过所述接收方执行被请求的功能。
本申请实施例提供的上述方法,由于引入了消息分发组件、以及在运行时动态确定接收方的机制(例如:可以利用编程语言的反射特性),解决了第二组件和第一组件之间的耦合问题,即:第一组件具有调用第二组件功能的需求时,可以不引用第二组件的接口头文件,而是由消息分发组件在运行过程中动态地确定第二组件中的接收方并触发其提供被请求的功能。因此,在软件产品开发过程中采用上述方法,可以消除功能组件之间的依赖,提高功能组件的复用性,从而可以在不同的软件产品中轻松地复用同一功能组件,提高软件产品的开发效率,在多人团队协同开发一个中型或大型软件的情况下,有益效果更为显著。
附图说明
图1是本申请实施例的一种组件间的功能调用方法的实施例的示意图;
图2是本申请实施例提供的消息分发组件在运行时确定接收方、并将功能调用请求转发给接收方的处理流程图;
图3是本申请实施例的一种组件间的功能调用装置的实施例的示意图;
图4是本申请实施例的一种组件化架构系统的实施例的示意图;
图5是本申请实施例提供的组件化架构系统的一个具体例子的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请实施例。但是,本申请实施例能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请实施例内涵的情况下做类似推广,因此,本申请实施例不受下面公开的具体实施的限制。
在本申请实施例中,分别提供了一种组件间的功能调用方法、一种组件间的功能调用装置、以及一种组件化架构系统。在下面的实施例中逐一进行详细说明。为了便于理解,先对本申请实施例提供的技术方案作简要说明。
现有技术在软件产品的开发过程中,通常采用基于功能组件的集成架构方式实现并行开发。其中,所述功能组件,通常能够完成独立或者相对独立的功能,例如:数据读写、数据存储等基础功能,或者,日志上报、登录注册等业务功能。以下所述的第一组件和第二组件都属于功能组件。
现有技术为了实现功能组件之间的功能调用,作为调用方的第一组件需要引用作为被调用方的第二组件的接口头文件,例如:第一组件的源代码,可以在其头部包含include指令或者类似指令引入第二组件的接口头文件,在需要调用第二组件功能时,可以直接编写将功能调用请求发送给第二组件中具体接收方的代码即可,由于在编译阶段就确定了第二组件中的接收方,这种侵入式调用方式,会产生功能组件之间的依赖,即:第一组件依赖第二组件,从而降低组件的复用性,影响软件产品的开发效率。
针对现有技术存在的上述问题,本申请实施例提供了一种组件间的功能调用方法,所述方法包括以下步骤:第一组件向消息分发组件发送对第二组件的功能调用请求;消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;第二组件通过所述接收方执行被请求的功能。
本申请实施例所提供方法的核心在于,引入了消息分发组件,并且在运行过程中,针对第一组件对第二组件的功能调用请求,由消息分分发组件动态地确定第二组件中的接收方,并触发所述接收方提供被请求的功能。因此,第一组件可以不引用第二组件的接口头文件,从而消除第一组件对第二组件的依赖。在软件产品开发过程中采用上述方法,可以消除功能组件之间的依赖,大大提高功能组件的复用性,可以在不同的软件产品中轻松地复用同一功能组件,提高软件产品的开发效率。
在对本申请实施例技术方案简要说明的基础上,下面对本申请实施例提供的各实施例进行说明。请参考图1,其为本申请实施例的一种组件间的功能调用方法的实施例的流程图。所述方法包括如下步骤:
步骤101、第一组件向消息分发组件发送对第二组件的功能调用请求。
第一组件根据应用场景的处理逻辑,在需要调用第二组件提供的功能时,可以向消息分发组件发送对第二组件的功能调用请求。例如,第一组件可以调用消息分发组件提供的对应于所述功能调用请求的接口,从而向第二组件发送所述功能调用请求。
在具体实施时,如果消息分发组件包括:对应于第二组件的接口模块和负责在运行时动态确定接收方的反射模块(关于这部分内容的说明请参见步骤102中的相关文字),那么在本步骤中,第一组件可以调用消息分发组件的所述接口模块提供的、对应于所述功能调用请求的接口。
为了便于说明本实施例提供的技术方案,下面给出本实施例的一个具体例子,在本实施例的后续描述中,也会沿用此处给出的具体例子进行相关说明。在所述具体例子中,第一组件(简称组件A)在其处理逻辑中,需要调用第二组件(简称组件B)提供的、根据用户标识获取用户信息的功能,消息分发组件包括两个模块:对应于组件B的接口模块PortB和反射模块TBModuleHub,其中,PortB模块中包含组件B提供的各功能的相应接口,其中包含与获取用户信息这一功能对应的接口,例如,getUserInfo()方法,因此在本步骤中,第一组件可以先创建PortB的实例,然后以待查询用户的标识userID为入口参数调用PortB提供的getUserInfo()方法。
步骤102、消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方。
在本步骤中,消息分发组件根据接收的所述功能调用请求,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方。所述接收方可以是一个函数、或者是一个类中的方法等。由于本步骤在运行时动态确定接收方,因此第一组件可以不在源代码中引入第二组件的接口头文件,从而可以解除第一组件对第二组件的依赖。
在具体实施时,消息分发组件可以采用不同的实施方式在运行时动态地确定接收方,以第一组件、第二组件以及消息分发组件采用Objective-C或者Java语言等具备反射特性的编程语言开发为例,消息分发组件可以通过编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,并将该类提供的相应方法作为第二组件中的、对应于所述功能调用请求的接收方,然后通过调用所述相应方法,向第二组件转发所述功能调用请求。
具体到本步骤中,消息分发组件可以根据预设的映射关系,确定第二组件中对应所述功能调用请求的类名称和方法名称;并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件对应所述功能调用请求的类及该提供的相应方法。
优选地,消息分发组件可以包括对应于第二组件的接口模块和反射模块,其中,所述接口模块包含对应于所述功能调用请求的接口,所述接口负责确定第二组件对应于所述功能调用请求的类名称和方法名称、并调用反射模块,反射模块则负责根据所述类名称和方法名称、利用反射机制获取相应的类和方法。采用这种优选实施方式,在软件产品中集成第二组件时,可以相应增加所述接口模块,从软件产品中删除第二组件时,可以相应删除所述接口模块,而不会影响提供核心反射机制的反射模块,因此可以实现模块功能的高内聚及低耦合,便于代码的维护。
在将本实施例提供的方法应用于软件产品的开发过程时,所述对应于第二组件的接口模块可以由第二组件的提供方一并提供,并与消息分发组件中的反射模块相配合、以完成在运行时确定所述功能调用请求的接收方的功能,从而消除第二组件和第一组件之间的耦合。
基于上述优选实施方式,本步骤中消息分发组件的处理过程可以包括以下步骤102-1至102-4,下面结合图2、并沿用步骤101给出的具体例子,对处理过程进行说明。
步骤102-1、接口模块的所述接口接收所述功能调用请求后,根据预设的映射关系,确定第二组件对应所述功能调用请求的类名称和方法名称。
消息分发组件包括对应于第二组件的接口模块和反射模块,其中,所述接口模块包含对应于所述功能调用请求的接口,在步骤101中,第一组件向消息分发组件发送功能调用请求时,采用了调用所述接口的方式,接口模块的所述接口就会接收到功能调用请求。
接口模块可以预先设定映射关系,指明所述接口与第二组件中的类名称和方法名称的对应关系,本步骤102-1中,所述接口在接收所述功能调用请求后,可以根据预先设定的映射关系,获取对应的类名称和方法名称,也即获取了第二组件中的、对应所述功能调用请求的类名称和方法名称。
仍沿用上述具体例子,对应于第二组件的接口模块PortB中的接口getUserInfo()通过查询预设的映射关系,获取第二组件中与获取用户信息这一功能调用请求对应的类名称classNameStr为“InterfaceB”,对应的方法名称methodNameStr为“interface1”。
步骤102-2、接口模块的所述接口调用所述反射模块,并至少将所述类名称和所述方法名称传递给所述反射模块。
本步骤中,所述接口调用所述反射模块,并以入口参数的形式将步骤102-1确定的类名称和方法名称传递给反射模块,从而反射模块可以通过反射机制获取第二组件对应所述功能调用请求的类和该类提供的相应方法。在具体实施时,以入口参数形式传递给反射模块的信息,还可以包括:第一组件发起所述功能调用请求时携带的参数。
仍沿用上述具体例子,反射模块可以具体封装为一个名为TBModuleHub的类,该类中的callWithMethodNameAndClassName()方法负责根据传入的类名称和方法名称,利用反射机制获取相应的类和方法。因此接口模块中的getUserInfo()接口调用反射模块的伪码片段可以如下所示,其中methodNameStr的值为“interface1”,classNameStr的值为“InterfaceB”:
Figure BDA0001195249990000091
步骤102-3、所述反射模块根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法。
编程语言的反射机制,是指用编程语言编写的计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力,例如,可以通过类的名称以及方法的名称,在运行时动态地获取类和方法。具备反射机制的编程语言包括:Objective-C、Java等。
在本步骤中,反射模块根据传入的类名称和方法名称,利用编程语言的反射机制获取第二组件对应所述功能调用请求的类和该类提供的相应方法,并将该类提供的相应方法作为第二组件中的接收方。从而实现了在运行时动态获取所述功能调用请求的接收方的功能,从而消除第一组件与第二组件之间的耦合。
仍沿用上述具体例子,反射模块的callWithMethodNameAndClassName()方法利用反射机制实现本步骤功能的伪码片段如下所示:
Figure BDA0001195249990000092
在所述具体例子中,上述伪码片段被调用时传入以下参数:className为“InterfaceB”,methodName为“interface1”,parameters为待查询用户的标识userID,上述伪码片段在执行中,通过findClass(className)动态地获取了名称为“InterfaceB”的类c,通过findMethodOfClass(c,methodName)动态地获取了类c中的方法m,即:动态地确定了第二组件中的接收方。
需要说明的是,为了便于理解,本实施例在对所述具体例子进行说明时从功能描述的角度给出了伪码片段或者代码示例,但是本领域技术人员应该理解,这些伪码片段或者代码示例都是示意性的,在具体实施本实施例所提供的技术方案时,需要根据所采用的编程语言和开发环境,采用正确的数据类型和调用正确的API编写相应代码,以保证代码能够正确地编译并执行。上述关于伪码片段或者代码示例的说明对本步骤以及本实施例的其他步骤都是适用的,此后不再赘述。
步骤102-4、所述反射模块通过调用所述相应方法,向第二组件转发所述功能调用请求。
在步骤102-3中,反射模块已经在运行时获取了第二组件对应所述功能调用请求的类和该类提供的相应方法,因此在本步骤中反射模块通过调用所述相应方法,向第二组件转发所述功能调用请求。
仍沿用上述具体例子,在步骤102-3中反射模块动态地确定了第二组件中的接收方,即:类c中的方法m。如果方法m为类方法,则可以采用类似c.m(parameters)这样的代码调用方法m;如果方法m为实例方法,则可以先根据类c进行实例化得到相应的对象,然后再调用该对象的m方法,从而向第二组件转发所述功能调用请求。
至此,通过上述步骤102-1至102-4,对消息分发组件在运行时动态地确定接收方、并将功能调用请求转发给第二组件中的接收方的实施方式进行了描述。在上述实施方式中,采用了根据预设的映射关系确定类名称和方法名称的实施方式,在其他实施方式中,也可以不预设映射关系,而是采用硬编码的方式将相应的类名称和方法名称写入所述接口中,这样可以不执行步骤102-1,而是在步骤102-2中,直接以硬编码的形式将对应于所述功能调用请求的类名称和方法名称传递给反射模块也是可以的,相应的伪码片段如下所示:
Figure BDA0001195249990000101
步骤103、第二组件通过所述接收方执行被请求的功能。
步骤102中消息分发组件将功能调用请求转发给了第二组件中的接收方,在本步骤中,第二组件通过所述接收方执行被请求的功能。所述接收方可以是函数、也可以是类中的方法,所述接收方可以直接执行被请求的功能,也可以通过调用第二组件中的其他函数、或者其他对象的方法来执行被请求的功能。
在基于反射机制的实施方式下,接收方可以为第二组件对应所述功能调用请求的类所提供的相应方法,所述相应方法以被调用的方式接收到所述功能调用请求后,可以执行被请求的功能。例如:在步骤102中,如果接口模块的接口所确定的第二组件中对应所述功能调用请求的类名称为“User”、方法名称为“getInfo”,那么通过反射机制动态确定接收方后,第二组件的User类中的实例方法getInfo(paramters)被调用,getInfo()方法则执行以下功能:根据入口参数传入的用户标识,获取用户信息。
优选地,本实施例还提供从第二组件中抽象出接口类的优选实施方式。采用这种优选实施方式,可以对外屏蔽第二组件内部的实施细节,当其内部实施具体功能的方法名称或者参数类型等发生变更时,可以通过接口类完成相应的转换、映射、封装等功能,从而可以对外提供标准化的接口,其内部变更对其他组件不会产生影响,有助于组件复用,而且使代码易于维护。
具体的,第二组件可以提供接口类,接口类中包含一系列接口方法,每个接口方法可以对应于第二组件对外提供的一个功能,在步骤102中,消息分发组件通过编程语言的反射机制获取的第二组件中对应所述功能调用请求的类及该类提供的相应方法,可以是第二组件中的所述接口类及接口类中的相应接口方法,所述相应接口方法在被消息分发组件调用后,可以创建对应被请求功能的对象(具体的功能对象),并通过调用该对象的、用于实现被请求功能的方法,执行所述被请求功能。
仍沿用上述具体例子,类名称为“InterfaceB”的类为第二组件的接口类,方法名称为“interface1”的方法为所述接口类中的对应于所述功能调用请求(即:获取用户信息)的接口方法,那么当消息分发组件调用名称为“interface1”的接口方法后,该被调用的接口方法可以创建User类的对象,并调用其getInfo()方法,由getInfo()方法执行根据传入的用户标识获取用户信息的功能,相应的伪码片段如下所示:
Figure BDA0001195249990000111
通过上述步骤101-103的实施过程,第二组件针对第一组件发起的功能调用请求,执行了相应的功能。在具体实施时,第一组件对第二组件的功能调用请求,可以是无需返回执行结果的,例如:存储数据、设置权限、或显示界面等,在这种应用场景下,执行上述步骤103后第一组件对第二组件的功能调用过程就结束了。
在需要返回执行结果的应用场景下,例如,获取用户信息,或读取配置信息等,那么在执行上述步骤103后,第二组件还可以将执行结果,返回给消息分发组件,并由消息分发组件返回给第一组件,从而第一组件可以根据执行结果实施后续的处理操作。具体实施时,返回执行结果可以由return语句实现。
具体的,对于消息分发组件包括接口模块和反射模块、和/或、第二组件提供接口类的实施方式,功能调用的执行结果则可以被逐级返回到第一组件。以消息分发组件包括接口模块和反射模块、以及第二组件提供接口类为例,当第二组件通过功能对象的方法执行被请求功能后,执行结果依次经由第二组件中所述功能对象的方法、第二组件的接口类中的接口方法、消息分发组件的反射模块、消息分发组件的接口模块,最终返回给第一组件。
仍沿用上述具体例子,由于第一组件对第二组件的功能调用请求为,根据用户标识获取用户信息,因此第二组件可以将执行结果,即:获取到的用户信息返回给第一组件,执行结果的逐级返回过程具体为:第二组件功能对象的方法getInfo()——>第二组件的接口方法interface1()——>消息分发组件的反射模块中的方法callWithMethodAndClassName()——>消息分发组件的接口模块中的接口getUserInfo()——>第一组件。
至此,对本实施例提供的组件间的功能调用方法的实施方式进行了详细说明。通过上面的描述可以看出,上述方法由于引入了消息分发组件、以及在运行时动态确定接收方的机制(例如:可以利用编程语言的反射特性),解决了第二组件和第一组件之间的耦合问题,即:第一组件具有调用第二组件功能的需求时,可以不引用第二组件的接口头文件,而是由消息分发组件在运行过程中动态地确定第二组件中的接收方并触发其执行被请求的功能。
在软件产品开发过程中采用上述方法,由于各个功能组件只依赖消息分发组件,消息分发组件无需依赖任何功能组件,各功能组件之间也没有依赖关系,从而消除了功能组件之间的耦合,大大提高功能组件的复用性,可以在不同的软件产品中轻松地复用同一功能组件,提高软件产品的开发效率。特别是在多人团队协同开发一个中型或大型软件的情况下,有益效果更为显著。
在上述的实施例中,提供了一种组件间的功能调用方法,与之相对应的,本申请实施例还提供一种组件间的功能调用装置。请参看图3,其为本申请实施例的一种组件间的功能调用装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种组件间的功能调用装置,包括:请求发送单元301,用于由第一组件向消息分发组件发送对第二组件的功能调用请求;消息分发单元302,用于由消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;功能执行单元303,用于由第二组件通过所述接收方执行被请求的功能。
可选的,所述消息分发单元具体用于在接收所述功能调用请求后,通过编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,并将该类提供的相应方法作为第二组件中的接收方;通过调用所述相应方法,向第二组件转发所述功能调用请求;
所述功能执行单元,具体用于由第二组件通过被调用的所述相应方法执行被请求的功能。
可选的,所述消息分发单元,具体用于在接收所述功能调用请求后,获取第二组件对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,并将该类提供的相应方法作为第二组件中的接收方;通过调用所述相应方法,向第二组件转发所述功能调用请求。
可选的,所述消息分发单元,包括:对应于第二组件的接口子单元和反射子单元。
可选的,所述请求发送单元,具体用于由第一组件调用消息分发组件的所述接口子单元提供的对应于所述功能调用请求的接口;
所述接口子单元,用于由所述接口接收所述功能调用请求、并根据预设的映射关系,确定第二组件对应所述功能调用请求的类名称和方法名称,并触发反射子单元工作,以及在触发时至少将所述类名称和所述方法名称传递给反射子单元;
所述反射子单元,用于根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法,并通过调用所述相应方法,向第二组件转发所述功能调用请求。
可选的,所述类包括:接口类,所述相应方法包括:相应接口方法。
可选的,所述功能执行单元,具体用于由被调用的所述相应接口方法创建对应被请求功能的对象,并通过调用该对象的方法,执行所述被请求功能。
可选的,所述装置还包括:
结果返回单元,用于在所述第二组件通过所述接收方执行被请求的功能之后,由第二组件将执行结果,经由消息分发组件返回给第一组件。
可选的,所述装置还包括:
执行结果返回单元,用于在被调用的所述相应接口方法创建对应被请求功能的对象、并通过调用该对象的方法执行所述被请求功能之后,对应所述被请求功能的执行结果,依次经由第二组件中所述该对象的方法、第二组件的所述接口方法、消息分发组件的反射模块、消息分发组件的接口模块,返回给第一组件。
以上提供了一种组件间的功能调用方法及装置,相应的,本申请实施例还提供了一种组件化架构系统。请参考图4,其示出了本申请实施例的一种组件化架构系统的实施例的示意图。其中,所述组件化架构系统包括:第一组件401,消息分发组件402,以及第二组件403;
所述第一组件,用于向消息分发组件发送对第二组件的功能调用请求;
所述消息分发组件,用于接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方;
所述第二组件,用于通过所述接收方执行被请求的功能。
可选的,所述消息分发组件,具体用于在接收所述功能调用请求后,通过编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,并将该类提供的相应方法作为第二组件中的接收方,并通过调用所述相应方法,向第二组件转发所述功能调用请求;
所述第二组件,具体用于通过被调用的所述相应方法执行被请求的功能。
可选的,所述消息分发组件,具体用于在接收所述功能调用请求后,获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件对应所述功能调用请求的类及该类提供的相应方法,并通过调用所述相应方法,向第二组件转发所述功能调用请求。
可选的,所述消息分发组件包括:对应于第二组件的接口模块和反射模块。
可选的,所述第一组件,具体用于调用消息分发组件的所述接口模块提供的对应于所述功能调用请求的接口;
所述消息分发组件的所述接口模块,用于所述接口接收所述功能调用请求后,根据预设的映射关系,确定第二组件中对应所述功能调用请求的类名称和方法名称,并调用反射模块,并至少将所述类名称和所述方法名称传递给反射模块;
所述消息分发组件的所述反射模块,用于根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件对应所述功能调用请求的类和该类提供的相应方法,并通过调用所述相应方法,向第二组件转发所述功能调用请求。
可选的,所述类包括:接口类,所述相应方法包括:相应接口方法。
可选的,所述第二组件,具体用于由被调用的所述相应接口方法创建对应被请求功能的对象,并通过调用该对象的方法,执行所述被请求功能。
其参考图5,其为本实施例提供的组件化架构系统的具体例子的示意图,在具体例子中包括两个功能组件:第一组件和第二组件(分别对应于图5中的组件A和组件B),以及消息分发组件。其中,组件A中提供接口类InterfaceA,组件B中提供接口类InterfaceB,消息分发组件包括反射模块TBModuleHub和两个接口模块:对应于组件A的接口模块PortA和对应于组件B的接口模块PortB。
当组件A需要调用组件B提供的功能时,可以调用PortB中的相应接口,PortB中的相应接口调用反射模块TBModuleHub,并将被调用功能对应的类名称和方法名称传递给反射模块,反射模块采用反射机制获取组件B中对应于所述被调用功能的接口类InterfaceB以及其中的接口方法,并调用该接口方法,从而将组件A的功能调用请求转发给了组件B中的接口方法,所述接口方法可以通过创建对象等方式执行被请求的功能。
同样的道理,当组件B需要调用组件A提供的功能时,也可以采用类似的方式:调用PortA中的相应接口,所述相应接口调用反射模块TBModuleHub,并由反射模块通过反射机制将功能调用请求转发给InterfaceA中的接口方法,并通过所述接口方法执行被请求功能。
由此可见,通过反射模块TBModuleHub的反射机制,相当于在针对同一功能组件的Port模块和Interface类之间建立起了运行时(runtime)的动态映射能力,例如:在PortA和InterfaceA之间、以及在PortB和InterfaceB之间,因此Port模块可以在不引用Interface类的情况下调用到Interface类提供的具体接口,从而实现组件A和组件B之间的解耦。
本申请实施例虽然以较佳实施例公开如上,但其并不是用来限定本申请实施例,任何本领域技术人员在不脱离本申请实施例的精神和范围内,都可以做出可能的变动和修改,因此本申请实施例的保护范围应当以本申请实施例权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请实施例的实施例可提供为方法、系统或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (15)

1.一种组件间的功能调用方法,其特征在于,包括:
第一组件向消息分发组件发送对第二组件的功能调用请求;
消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方,包括:所述消息分发组件接收所述功能调用请求后,获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,通过调用所述相应方法,向第二组件转发所述功能调用请求;
第二组件通过所述接收方执行被请求的功能。
2.根据权利要求1所述的方法,其特征在于,所述第二组件通过所述接收方执行被请求的功能,包括:第二组件通过被调用的所述相应方法执行被请求的功能。
3.根据权利要求1所述的方法,其特征在于,所述消息分发组件包括:对应于第二组件的接口模块和反射模块。
4.根据权利要求3所述的方法,其特征在于,所述第一组件向消息分发组件发送对第二组件的功能调用请求,包括:
第一组件调用消息分发组件的所述接口模块提供的对应于所述功能调用请求的接口;
所述消息分发组件获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法,包括:
接口模块的所述接口接收所述功能调用请求后,根据预设的映射关系,确定第二组件中对应所述功能调用请求的类名称和方法名称;
接口模块的所述接口调用所述反射模块,并至少将所述类名称和所述方法名称传递给所述反射模块;
反射模块根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法;
所述消息分发组件通过调用所述相应方法,向第二组件转发所述功能调用请求的步骤,由消息分发组件中的反射模块执行。
5.根据权利要求1所述的方法,其特征在于,所述类包括:接口类,所述相应方法包括:相应接口方法。
6.根据权利要求5所述的方法,其特征在于,所述第二组件通过被调用的所述相应方法执行被请求的功能,包括:
被调用的所述相应接口方法创建对应被请求功能的对象,并通过调用该对象的方法,执行所述被请求功能。
7.根据权利要求1所述的方法,其特征在于,在所述第二组件通过所述接收方执行被请求的功能之后,还包括:
第二组件将执行结果,经由消息分发组件返回给第一组件。
8.根据权利要求6所述的方法,其特征在于,在被调用的所述相应接口方法创建对应被请求功能的对象、并通过调用该对象的方法执行所述被请求功能之后,还包括:对应所述被请求功能的执行结果,依次经由第二组件中所述该对象的方法、第二组件的所述接口方法、消息分发组件的反射模块、消息分发组件的接口模块,返回给第一组件。
9.一种组件间的功能调用装置,其特征在于,包括:
请求发送单元,用于由第一组件向消息分发组件发送对第二组件的功能调用请求;
消息分发单元,用于由消息分发组件接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方,包括:所述消息分发组件接收所述功能调用请求后,获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,通过调用所述相应方法,向第二组件转发所述功能调用请求;
功能执行单元,用于由第二组件通过所述接收方执行被请求的功能。
10.根据权利要求9所述的装置,其特征在于,
所述功能执行单元,具体用于由第二组件通过被调用的所述相应方法执行被请求的功能。
11.根据权利要求10所述的装置,其特征在于,所述消息分发单元,包括:对应于第二组件的接口子单元和反射子单元。
12.根据权利要求11所述的装置,其特征在于,所述请求发送单元,具体用于由第一组件调用消息分发组件的所述接口子单元提供的对应于所述功能调用请求的接口;
所述接口子单元,用于由所述接口接收所述功能调用请求、并根据预设的映射关系,确定第二组件对应所述功能调用请求的类名称和方法名称,并触发反射子单元工作,以及在触发时至少将所述类名称和所述方法名称传递给反射子单元;
所述反射子单元,用于根据所述类名称和所述方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类和该类提供的相应方法,并通过调用所述相应方法,向第二组件转发所述功能调用请求。
13.根据权利要求10所述的装置,其特征在于,所述类包括:接口类,所述相应方法包括:相应接口方法。
14.根据权利要求13所述的装置,其特征在于,所述功能执行单元,具体用于由被调用的所述相应接口方法创建对应被请求功能的对象,并通过调用该对象的方法,执行所述被请求功能。
15.一种组件化架构系统,其特征在于,包括:第一组件,第二组件,以及消息分发组件;
所述第一组件,用于向消息分发组件发送对第二组件的功能调用请求;
所述消息分发组件,用于接收所述功能调用请求后,采用在运行时确定接收方的机制将所述功能调用请求转发给第二组件中的接收方,包括:所述消息分发组件接收所述功能调用请求后,获取第二组件中对应所述功能调用请求的类名称和方法名称,并根据所述类名称和方法名称,利用编程语言的反射机制获取第二组件中对应所述功能调用请求的类及该类提供的相应方法,通过调用所述相应方法,向第二组件转发所述功能调用请求;
所述第二组件,用于通过所述接收方执行被请求的功能。
CN201611235715.0A 2016-12-28 2016-12-28 组件间的功能调用方法、装置及组件化架构系统 Active CN108255545B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611235715.0A CN108255545B (zh) 2016-12-28 2016-12-28 组件间的功能调用方法、装置及组件化架构系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611235715.0A CN108255545B (zh) 2016-12-28 2016-12-28 组件间的功能调用方法、装置及组件化架构系统

Publications (2)

Publication Number Publication Date
CN108255545A CN108255545A (zh) 2018-07-06
CN108255545B true CN108255545B (zh) 2022-09-02

Family

ID=62720019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611235715.0A Active CN108255545B (zh) 2016-12-28 2016-12-28 组件间的功能调用方法、装置及组件化架构系统

Country Status (1)

Country Link
CN (1) CN108255545B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144478B (zh) * 2018-07-12 2022-02-25 北京猫眼文化传媒有限公司 组件框架系统以及组件框架系统的使用方法
CN109240758B (zh) * 2018-07-25 2021-10-29 武汉精测电子集团股份有限公司 一种支持插件接口同步异步统一调用的方法及微内核系统
CN109445845B (zh) * 2018-09-10 2022-09-30 深圳市智美达科技股份有限公司 接口调用方法、装置、计算机设备和存储介质
CN109445960B (zh) * 2018-10-18 2021-03-02 腾讯科技(深圳)有限公司 应用的路由方法、装置及存储介质
CN109460222A (zh) * 2018-11-07 2019-03-12 广州虎牙科技有限公司 应用程序的组件化方法、装置、设备及存储介质
CN109656536B (zh) * 2018-12-25 2022-08-16 武汉斗鱼网络科技有限公司 一种推送模块组件化的方法及客户端
CN111580892B (zh) * 2019-02-19 2023-09-19 杭州海康威视系统技术有限公司 一种业务组件调用的方法、装置、终端和存储介质
CN110297721B (zh) * 2019-06-24 2021-08-03 杭州趣链科技有限公司 一种基于java的智能合约的跨合约调用方法
CN111488286B (zh) * 2020-04-15 2024-02-09 腾讯音乐娱乐科技(深圳)有限公司 一种Android模块独立开发的方法及装置
CN111625379B (zh) * 2020-06-02 2021-06-04 网易(杭州)网络有限公司 一种信息处理的方法、装置、电子设备和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239287A (zh) * 1995-01-25 1999-12-22 Dva公司 用于信息存储设备的伺服控制系统
CN101015192A (zh) * 2004-06-30 2007-08-08 建利尔电子公司 用于来自分布式电信平台的出站呼叫的系统和方法
CN103378421A (zh) * 2012-04-27 2013-10-30 深圳光启创新技术有限公司 多天线组件及其无线移动互联设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2651782C (en) * 2006-05-19 2018-03-06 Mako Surgical Corp. System and method for verifying calibration of a surgical device
CN1967485B (zh) * 2006-06-20 2010-05-12 华为技术有限公司 一种实现j2ee应用的方法及系统
DE102007049799A1 (de) * 2007-09-28 2009-04-02 Osram Opto Semiconductors Gmbh Optoelektronisches Bauelement
CN101202665B (zh) * 2007-12-06 2011-04-13 中兴通讯股份有限公司 图形用户界面的生成方法
CN101662068A (zh) * 2008-08-29 2010-03-03 华为技术有限公司 一种去耦组件、天线模块和天线阵列
CN101923485B (zh) * 2009-06-17 2013-02-06 大唐软件技术股份有限公司 Corba系统中的java远程调用方法
US8209102B2 (en) * 2010-01-18 2012-06-26 GM Global Technology Operations LLC Accelerator pedal torque request systems and methods
CN102183825B (zh) * 2011-04-22 2013-03-20 深圳市恒宝通光电子股份有限公司 一种模式耦合光组件
CN102591724B (zh) * 2011-12-28 2015-01-14 奇智软件(北京)有限公司 消息交互方法及装置
CN103530097B (zh) * 2012-07-04 2018-01-30 深圳中兴网信科技有限公司 一种跨中间件平台的组件的实现方法和装置
US8941287B2 (en) * 2012-07-27 2015-01-27 Southwest Research Institute Method and device for long-term monitoring of components using guided waves
CN103699367B (zh) * 2012-09-27 2017-07-07 中国电信股份有限公司 Http应用程序接口调用方法与装置
US9382847B2 (en) * 2012-11-02 2016-07-05 Pratt & Whitney Canada Corp. Rotor resonance disturbance rejection controller
US11237719B2 (en) * 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
CN103544016A (zh) * 2013-10-28 2014-01-29 珠海许继芝电网自动化有限公司 一种基于java反射技术的服务注册配置方法及系统
US9448755B2 (en) * 2013-12-28 2016-09-20 Intel Corporation Wearable electronic device having heterogeneous display screens
US9332480B2 (en) * 2014-03-28 2016-05-03 Qualcomm Incorporated Decoupling service and network provider identification in wireless communications
CN103927180B (zh) * 2014-04-21 2017-02-15 广州市久邦数码科技有限公司 一种基于安卓系统的功能插件的实现方法及其系统
CN105094773B (zh) * 2014-05-09 2018-07-24 阿里巴巴集团控股有限公司 模块功能的重用方法及系统
US9454066B2 (en) * 2014-06-19 2016-09-27 Olloclip, Llc Auxiliary optical components for mobile devices
CN104267977B (zh) * 2014-09-16 2017-12-29 小米科技有限责任公司 应用程序运行方法及装置
CN104360904A (zh) * 2014-10-16 2015-02-18 四川长虹电器股份有限公司 基于事件总线的模块间消息传递机制
CN105807424B (zh) * 2014-12-30 2018-10-12 联想(北京)有限公司 显示装置和电子设备
CN105807603B (zh) * 2014-12-30 2019-07-26 联想(北京)有限公司 电子设备
CN104572116A (zh) * 2015-01-23 2015-04-29 广东能龙教育股份有限公司 一种基于订阅模式的中间件调用系统
CN104580501A (zh) * 2015-01-23 2015-04-29 广东能龙教育股份有限公司 一种基于反射机制的Http接口动态发布方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239287A (zh) * 1995-01-25 1999-12-22 Dva公司 用于信息存储设备的伺服控制系统
CN101015192A (zh) * 2004-06-30 2007-08-08 建利尔电子公司 用于来自分布式电信平台的出站呼叫的系统和方法
CN103378421A (zh) * 2012-04-27 2013-10-30 深圳光启创新技术有限公司 多天线组件及其无线移动互联设备

Also Published As

Publication number Publication date
CN108255545A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN108255545B (zh) 组件间的功能调用方法、装置及组件化架构系统
CN106354481B (zh) 对http请求进行统一映射的方法和设备
CN110365751B (zh) 网关系统的业务处理方法、装置及设备
US8458681B1 (en) Method and system for optimizing the object code of a program
US9760583B2 (en) Method for native program to inherit same transaction context when invoked by primary program running in separate environment
CN111176626B (zh) 跨编程语言的代码调用方法及装置、介质、设备
Lagaillardie et al. Implementing multiparty session types in rust
TW202027530A (zh) 基於區塊鏈智慧合約的轉帳方法及系統
US20240069877A1 (en) Method and device for generating application based on android system, and storage medium
CN113407362A (zh) 基于车载Android系统SOA架构SOMEIP通信中间层实现方法及系统
US20100036859A1 (en) Message Exchange Pattern Rendezvous Abstraction
CN113127108A (zh) 业务请求的处理方法及装置、存储介质以及电子设备
CN108595331B (zh) 异步接口的测试方法、介质、装置和计算设备
CN110457013B (zh) 程序组件配置装置及方法
CN112379886A (zh) 数据格式转换系统及其方法
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN112579212A (zh) 跨语言调用的方法、调用方装置及被调用方装置
CN116627669A (zh) 一种异业合作适配api方法、装置、设备和介质
CN116342283A (zh) 可信智能合约实现方法、装置、设备及可读存储介质
CN111309402A (zh) 数据监测及针对应用程序的处理方法、装置及设备
CN110275710B (zh) 一种Java本地接口一致性检查方法及系统、存储介质及终端
CN111399842B (zh) 一种代码编译方法及装置
CN108023966B (zh) 通用网关接口请求处理方法、设备和存储介质
CN112882690B (zh) 一种应用开发方法及装置
CN111142860B (zh) 用于实现接口调用的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant