CN104572091B - 应用软件实现方法、装置以及计算机设备 - Google Patents
应用软件实现方法、装置以及计算机设备 Download PDFInfo
- Publication number
- CN104572091B CN104572091B CN201410830258.4A CN201410830258A CN104572091B CN 104572091 B CN104572091 B CN 104572091B CN 201410830258 A CN201410830258 A CN 201410830258A CN 104572091 B CN104572091 B CN 104572091B
- Authority
- CN
- China
- Prior art keywords
- component
- sub
- engineering
- information
- assembling
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种应用软件实现方法、装置以及计算机设备,其中的方法包括:主工程中的组件组装器接收主工程中的业务逻辑传输来的业务信息;组件组装器根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件;组件组装器在根据所述对应的封装组件包含的组件调用信息调用相应的组件过程中,将所述业务信息中的业务参数作为所述组件的配置参数,所述组件属于子工程;组件组装器将封装组件的运行结果返回给相应的业务逻辑。本发明提供的上述技术方案可以使应用软件具有易扩展、易重构、易调试以及具有较佳的编译速度等特点,最终提高了应用软件的质量。
Description
技术领域
本发明涉及软件开发技术领域,尤其是涉及一种应用软件的实现方法、应用软件的实现装置以及计算机设备。
背景技术
随着互联网的发展,软件已经应用于诸多行业,如工业、农业、银行以及航空等行业。软件在诸多行业中的应用不仅提高了大量工作人员的工作效率,而且有效促进了各行业的发展。
目前,智能移动电话、平板电脑、计算机(如笔记本电脑或者台式计算机等)以及服务器等智能电子设备中通常安装有大量的应用软件。
发明人在实现本发明过程中发现,现有的应用软件大多存在应用软件没有层次感以及在运行过程中不同模块之间相互交叉调用等现象,上述现象不但会使应用软件结构不清晰,而且还会使不同模块之间的相互依赖程度较高,进而会导致应用软件存在不易扩展、不易重构、不易调试(如不易进行bug定位)以及编译速度较低等问题。
发明内容
本发明解决的技术问题之一是使应用软件具有清晰的层次结构,且避免应用软件中的不同模块之间的相互交叉调用的现象,从而使应用软件具有易扩展、易重构、易调试以及具有较佳的编译速度等特点。
根据本发明一方面的一个实施例,提供了一种应用软件实现方法,该方法包括:主工程中的组件组装器接收主工程中的业务逻辑传输来的业务信息;组件组装器根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件;组件组装器在根据所述对应的封装组件包含的组件调用信息调用相应的组件过程中,将所述业务信息中的业务参数作为所述组件的配置参数,所述组件属于子工程;组件组装器将封装组件的运行结果返回给相应的业务逻辑。
根据本发明再一方面的一个实施例,具体提供了一种应用软件实现装置,该装置包括:主工程和子工程,且所述主工程包括:业务逻辑和组件组装器,所述子工程包括组件;组件组装器,适于接收业务逻辑传输来的业务信息;组件组装器还适于根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件;组件组装器还适于在根据所述对应的封装组件包含的组件调用信息调用相应的组件过程中,将所述业务信息中的业务参数作为组件的配置参数;组件组装器还适于将封装组件的运行结果返回给相应的业务逻辑。
根据本发明的再一方面的一个实施例,还提供了一种计算机设备,包括前述的应用软件实现装置。
本发明通过将应用软件的结构划分为主工程和子工程,并在主工程中设置业务逻辑和组件组装器,在子工程中设置组件,使应用软件具有清晰明了的层次结构;组件组装器通过根据业务逻辑传输来的业务信息确定对应的封装组件,并根据封装组件中的组件调用信息调用相应的组件,使业务逻辑和组件之间被组件组装器屏蔽,使主工程中的业务逻辑与子工程中的组件之间的相互依赖程度较低,即两者具有较低的耦合度,因此,子工程可以与主工程脱离而被单独编译,避免了应用软件中的部分程序发生变化而需要对全部程序均进行编译的现象;本发明通过针对子工程中的组件设置封装组件,使组件和业务逻辑均便于管理,提高了组件以及业务逻辑的可管理性;从而本发明的应用软件具有易扩展、易重构、易调试以及具有较佳的编译速度等特点,提高了应用软件的质量。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例以及附图进行,但本发明并不仅限于这些实施例。而是,本发明的范围是广泛的,且意在仅通过后附的权利要求限定本发明的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是根据本发明一个实施例的应用软件实现方法的流程图;
图2是根据本发明一个实施例的应用软件的软件工程结构以及应用软件实现装置示意图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1是本发明实施例一的应用软件实现方法的流程图。实施例一的方法可以通过智能移动电话、平板电脑以及计算机设备中的操作系统或处理控制器来完成。可以将计算机设备中的操作系统或处理控制器称为应用软件实现装置。该计算机设备包括但不限于下述至少一个:单台计算机、多台计算机组成的计算机组、单个网络服务器、多个网络服务器组成的服务器组以及基于云计算的由大量计算机或网络服务器构成的云;其中,云计算是分布式计算的一种,是由一群松散耦合的计算机集组成的一个超级虚拟计算机。
实施例一、应用软件实现方法。
图1中,S100、主工程中的组件组装器接收主工程中的业务逻辑传输来的业务信息。
具体的,本实施例的应用软件的软件工程结构如图2所示。图2中的软件工程主要包括两层,即主工程所在的层以及子工程所在的层。本实施例中的主工程所在的层与子工程所在的层之间的调用关系为单向调用关系,即主工程所在的层可以调用子工程所在的层中的内容,但是子工程所在的层不能够调用主工程所在的层中的内容。
图2中的主工程主要包括:业务逻辑以及组件组装器。主工程通常会包含有多个业务逻辑,一个业务逻辑通常可以实现一个特定的功能,如下载功能或者上传功能或者注册功能或者在线阅读功能等等。本实施例中的业务逻辑通常属于易变逻辑。业务逻辑可以自己调用子工程所在的层中的内容,业务逻辑也可以通过组件组装器来调用子工程中的内容。通常情况下,各业务逻辑是通过组件组装器来调用子工程中的内容的。组件组装器对于业务逻辑而言可以起到一定的屏蔽作用,即组件组装器可以为业务逻辑屏蔽子工程中的内容。
图2中的子工程主要包括:一个或者多个组件。另外,子工程还可以包括:一个第三方库或者多个第三方库。这里的第三方库如SDK(Software Development Kit,软件开发工具包)等。子工程中的组件和第三方库通常具有通用性以及独立性。相对于主工程中的业务逻辑而言,本实施例中的组件和第三方库通常属于不易变逻辑。
本实施例中的组件可以是在应用软件开发过程中,根据通用性和独立性原则而设立的组件。在应用软件已经开发完成之后,如果由于该应用软件原来的结构存在不清晰等问题,而希望对该应用软件进行改进,则本实施例中的组件可以是在改进过程中根据通用性和独立性原则从软应用软件中抽取出的组件,例如,可以将原应用软件作为主工程,并从主工程中抽取出具有通用性和独立性的组件,而且,还可以从主工程中抽取出第三方库,被抽取出的组件和第三方库形成子工程。由于被抽取出的组件和第三方库具有通用性和独立性,因此,应用软件的整个程序代码可以得到有效的简化,从而可以避免应用软件的程序代码冗余重复的现象。
子工程中的组件和第三方库可以直接被主工程中的业务逻辑调用,子工程中的组件以及第三方库也可以被主工程中的组件组装器来调用。在通常情况下,子工程中的组件以及第三方库是由主工程中的组件组装器来调用的。在子工程中的组件以及第三方库被组件组装器调用的情况下,主工程中的业务逻辑通常并不知道子工程中的组件以及第三方库的存在,即对于主工程中的业务逻辑来说,子工程中的组件以及第三方库被组件组装器屏蔽了。
主工程中的业务逻辑在需要实现特定功能(如下载功能)时,通常会向组件组装器提供相应的业务信息。这里的业务信息主要包括:业务逻辑标识以及业务参数等;其中,业务逻辑标识主要用于唯一标识出一个业务逻辑,业务参数主要用于为组件组装器提供组件的配置参数。
S110、组件组装器根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件。
具体的,本实施例预先设置有业务逻辑标识与封装组件的对应关系信息,该对应关系可以设置于组件组装器中,这样,组件组装器在接收到业务逻辑传输来的业务信息后,能够方便快捷的确定出其接收到的业务逻辑标识所对应的封装组件。
组件组装器中通常设置有多个封装组件,每个封装组件中都至少包含有一个组件调用信息或者一个第三方库调用信息,即一个封装组件至少调用一个组件或者至少调用一个第三方库。本实施例中的每个封装组件中都可以包含有至少一个组件调用信息以及至少一个第三方库调用信息,也就是说,一个封装组件至少调用一个组件,并且至少调用一个第三方库。由此可知,封装组件可以实现对多个组件和/或多个第三方库的封装,封装组件通过对组件和/或第三方库的组合调用可以实现一个特定的功能或者特定的操作。
另外,本实施例的封装组件中还可以包括除组件调用信息以及第三方库调用信息之外的其他内容,例如,将组件和/或者第三方库输出的运行结果存储于预定的路径的命令等等。
本实施例中的每一个封装组件可以通过一个封装组件标识来唯一标识出,从而本实施例中的业务逻辑标识与封装组件的对应关系可以具体为业务标识和封装组件标识的对应关系,这样,组件组装器在查找到业务信息中的业务逻辑标识所对应的封装组件标识后,可以继续利用相应的封装组件标识获取到相应的封装组件所包含的具体内容,如组件调用信息、第三方库调用信息以及其他执行命令等。封装组件中所包含的内容可以被称为调用及命令执行逻辑。
S120、组件组装器在根据上述确定出的对应的封装组件包含的组件调用信息调用相应的组件过程中,将业务信息中的业务参数作为组件的配置参数。
具体的,本实施例中的业务信息中的业务参数主要用于为组件的正常加载运行提供必要的信息,如业务参数可以为组件的正常加载运行提供必要的输入参数等。本实施例中的业务参数还可以用于为封装组件中的其他执行命令的正常执行提供必要的信息,例如,为封装组件中的命令提供命令参数,再例如,在业务逻辑希望从预定路径获取封装组件的运行结果的情况下,业务逻辑通过业务参数为封装组件提供预定路径信息,以便于封装组件中的相应命令可以将组件输出的运行结果存储到预定路径中。
本实施例中的组件封装器在确定出业务信息中的业务逻辑标识对应的封装组件之后,可以利用子工程的头文件中存储的信息将业务信息中的相应的业务参数作为相应组件的配置参数,如输入参数。本实施例的头文件中记录有各组件接口描述信息,组件封装器可以根据头文件中的组件接口描述信息明确获知每一个组件在被调用时所需要的输入参数等信息,从而组件封装器可以从业务逻辑传输来的业务参数中准确的挑选出每一个被调用的组件所需要的输入参数等信息,并赋予被调用的相应的组件,如作为输入参数赋予被调用的相应的组件。
本实施例中的业务信息中的业务参数还主要用于为第三方库的正常加载运行提供必要的信息,如业务参数可以为第三方库的正常加载运行提供必要的输入参数等。本实施例中的业务参数还可以用于为封装组件中的其他执行命令的正常执行提供必要的信息,如在业务逻辑希望从预定路径获取封装组件的运行结果的情况下,业务逻辑可以通过业务参数为封装组件提供预定路径信息,以便于封装组件中的相应命令可以将第三方库输出的运行结果存储到预定路径中。
本实施例中的组件封装器在确定出业务信息中的业务逻辑标识对应的封装组件之后,可以利用子工程的头文件中存储的信息将业务信息中的相应的业务参数作为相应第三方库的配置参数,如输入参数。本实施例的头文件中记录有各第三方库接口描述信息,组件封装器可以根据头文件中的第三方库接口描述信息明确获知每一个第三方库在被调用时所需要的输入参数等信息,从而组件封装器可以从业务逻辑传输来的业务参数中准确的挑选出每一个被调用的第三方库所需要的输入参数等信息,并赋予被调用的相应的第三方库,如作为输入参数赋予被调用的相应的第三方库。
在主工程中的业务逻辑直接调用子工程中的组件或者第三方库的情况下,业务逻辑也应该根据头文件中记载的组件接口描述信息以及第三方库接口描述信息来实现组件或者第三方库的调用。
本实施例中的头文件对于主工程中的业务逻辑以及组件封装器调用组件以及第三方库而言,是非常重要的。本实施例中的主工程得到头文件的方式可以为:在编译系统对主工程进行编译的过程中,将头文件路径信息提供给编译系统,这样,编译系统可以根据头文件路径信息将头文件提供给主工程;从而主工程中的组件封装器可以获得头文件。
封装组件中所包含的所有内容(如组件调用信息、第三方库调用信息以及执行命令等)可以被称为调用及命令执行逻辑,在按照封装组件中的调用及命令执行逻辑执行了相应的操作后,可以认为封装组件运行结束。
需要特别说明的是,本实施例在根据封装组件中包含组件调用信息调用相应的组件,且被调用的组件在加载运行过程中,该加载运行的组件通常不会调用另一个组件或者调用第三方库,即便是该加载运行的组件调用了另一个组件或者调用了第三方库,也不会存在另一个组件或者第三方库回调该组件的现象;也就是说,本实施例中的组件之间以及组件与第三方库之间通常不存在调用现象,如果偶尔存在组件之间调用现象或者组件与第三方库之间的调用现象,则该调用现象也仅仅是组件之间的单向调用现象或者组件与第三方库之间的单向调用现象,不会存在不同组件之间相互交叉调用的现象以及组件与第三方库之间的相互交叉调用的现象。本实施例的一种较佳的情况是,子工程中的不同组件之间不存在相互交叉调用的现象,且子工程中的组件与第三方库之间也不存在相互交叉调用的现象。
S130、组件组装器将封装组件的运行结果返回给相应的业务逻辑。
具体的,在封装组件运行结束后,组件组装器可以将封装组件的运行结果直接返回给相应的业务逻辑;组件组装器也可以将封装组件的运行结果间接返回给相应的业务逻辑,例如,在业务逻辑要求组件组装器将封装组件的运行结果存储在相应的路径中的情况下,组件组装器可以在封装组件运行结束后,通知业务逻辑到相应的路径中获取封装组件的运行结果。
封装组件的运行结果的格式应符合业务逻辑的要求,以便于业务逻辑可以有效识别该运行结果。业务逻辑可以通过业务信息来表达其对运行结果的格式要求,除此之外,在设置组件以及业务逻辑的过程中,可以使两者都共同明确的获知运行结果的格式。
由于主工程中的组件封装器对业务逻辑和子工程中的组件和第三方库进行了有效的屏蔽,因此,本实施例中的主工程与子工程之间的耦合度较低,这样,本实施例可以使编译系统(也可以称为编译器)先对子工程中的所有组件进行编译或者对子工程中的所有组件以及所有第三方库进行编译,并利用编译后的所有组件形成子工程库文件或者利用编译后的所有组件和编译后的所有第三方库形成子工程库文件,然后,再将子工程库文件路径信息提供给链接系统(也可以称为链接器),由链接系统根据子工程库文件路径信息将子工程库文件与主工程进行链接,最后,再利用编译系统对主工程进行编译。由此可知,在属于易变逻辑的业务逻辑发生变化时,可以不对子工程重新进行编译操作,而只对主工程进行编译操作即可,有效提高了应用软件的编译速度。
实施例二、应用软件实现装置。
本实施例的应用软件实现装置可以设置智能移动电话中,也可以设置于平板电脑(如基于Android操作系统的平板电脑等)中,还可以设置于计算机(如笔记型计算机或者台式计算机等)中。当然,本实施例的应用软件实现装置同样可以设置于其他智能电子设备中,如设置于PDA等设备中。本实施例的应用软件实现装置可以设置于应用软件开发环境中,如设置于对应用软件进行调试的计算机或者服务器等设备中。本实施例不限制应用软件实现装置所设置于具体的硬件设备的具体表现形式。
本实施例的应用软件实现装置的结构如图2所示。
图2中,应用软件实现装置主要包括主工程和子工程;主工程与子工程之间的调用关系为单向调用关系,也就是说,主工程可以调用子工程中的内容,但是子工程不能够调用主工程中的内容。
本实施例中的主工程主要包括:至少一个业务逻辑和组件组装器。本实施例中的主工程通常会包含有多个业务逻辑,一个业务逻辑通常可以实现一个特定的功能,如下载功能或者上传功能或者注册功能或者在线阅读功能等等。本实施例中的业务逻辑通常属于易变逻辑。业务逻辑可以自己调用子工程中的内容,业务逻辑也可以通过组件组装器来调用子工程中的内容。通常情况下,各业务逻辑是通过组件组装器来调用子工程中的内容的。组件组装器对于业务逻辑而言可以起到一定的屏蔽作用,即组件组装器可以为业务逻辑屏蔽子工程中的内容。
本实施例中的子工程主要包括至少一个组件,且通常情况下,子工程包括多个组件;另外,该子工程还可以包括至少一个第三方库,通常情况下,子工程包括多个第三方库。子工程中的组件和第三方库通常具有通用性以及独立性。相对于主工程中的业务逻辑而言,本实施例中的组件和第三方库通常属于不易变逻辑。
本实施例中的组件可以是在应用软件开发过程中,根据通用性和独立性原则而设立的组件。在应用软件已经开发完成之后,如果由于该应用软件原来的结构存在不清晰等问题,而希望对该应用软件进行改进,则本实施例中的组件可以是在改进过程中根据通用性和独立性原则从软应用软件中抽取出的组件,例如,可以将原应用软件作为主工程,并从主工程中抽取出具有通用性和独立性的组件,而且,还可以从主工程中抽取出第三方库,被抽取出的组件和第三方库形成子工程。由于被抽取出的组件和第三方库具有通用性和独立性,因此,应用软件的整个程序代码可以得到有效的简化,从而可以避免应用软件的程序代码冗余重复的现象。
子工程中的组件和第三方库可以直接被主工程中的业务逻辑调用,子工程中的组件以及第三方库也可以被主工程中的组件组装器来调用。在通常情况下,子工程中的组件以及第三方库是由主工程中的组件组装器来调用的。在子工程中的组件以及第三方库被组件组装器调用的情况下,主工程中的业务逻辑通常并不知道子工程中的组件以及第三方库的存在,即对于主工程中的业务逻辑来说,子工程中的组件以及第三方库被组件组装器屏蔽了。
本实施例的装置还可以包括库文件管理模块和头文件处理模块,该库文件管理模块和头文件处理模块可以属于子工程,当然也可以独立于子工程存在。
本实施例中的业务逻辑主要用于实现具体的业务。
本实施例中的组件组装器主要用于实现组件的调用,从为业务逻辑实现具体的业务而提供必要的信息。组件组装器所执行的主要操作为:组件组装器接收业务逻辑传输来的业务信息,并根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件;之后,组件组装器在根据上述对应的封装组件包含的组件调用信息调用相应的组件过程中,并将业务信息中的业务参数作为组件的配置参数;之后,组件组装器将封装组件的运行结果返回给相应的业务逻辑。
本实施例中的组件以及第三方库主要用于根据组件组装器的调用而加载运行。
本实施例中的库文件管理模块主要用于针对编译后的组件和/或第三方库形成库文件,并向链接系统提供库文件路径信息。
本实施例中的头文件处理模块主要用于为编译系统提供头文件路径信息。
下面对本实施例的应用软件实现装置中的业务逻辑、组件组装器、组件、第三方库、库文件管理模块以及头文件处理模块进行进一步说明。
主工程中的业务逻辑在需要实现特定功能(如下载功能)时,通常会向组件组装器提供相应的业务信息。这里的业务信息主要包括:业务逻辑标识以及业务参数等;其中,业务逻辑标识主要用于唯一标识出一个业务逻辑,业务参数主要用于为组件组装器提供组件的配置参数。
本实施例预先设置有业务逻辑标识与封装组件的对应关系信息,该对应关系可以设置于组件组装器中,这样,组件组装器在接收到业务逻辑传输来的业务信息后,能够方便快捷的确定出其接收到的业务逻辑标识所对应的封装组件。
组件组装器中通常设置有多个封装组件,每个封装组件中都至少包含有一个组件调用信息或者一个第三方库调用信息,即一个封装组件至少调用一个组件或者至少调用一个第三方库。本实施例中的每个封装组件中都可以包含有至少一个组件调用信息以及至少一个第三方库调用信息,也就是说,一个封装组件至少调用一个组件,并且至少调用一个第三方库。由此可知,封装组件可以实现对多个组件和/或多个第三方库的封装,封装组件通过对组件和/或第三方库的组合调用可以实现一个特定的功能或者特定的操作。
另外,本实施例的封装组件中还可以包括除组件调用信息以及第三方库调用信息之外的其他内容,例如,将组件和/或者第三方库输出的运行结果存储于预定的路径的命令等等。
本实施例中的每一个封装组件可以通过一个封装组件标识来唯一标识出,从而本实施例中的业务逻辑标识与封装组件的对应关系可以具体为业务标识和封装组件标识的对应关系,这样,组件组装器在查找到业务信息中的业务逻辑标识所对应的封装组件标识后,可以继续利用相应的封装组件标识获取到相应的封装组件所包含的具体内容,如组件调用信息、第三方库调用信息以及其他执行命令等。封装组件中所包含的内容可以被称为调用及命令执行逻辑。
本实施例中的业务信息中的业务参数主要用于为组件的正常加载运行提供必要的信息,如业务参数可以为组件的正常加载运行提供必要的输入参数等。本实施例中的业务参数还可以用于为封装组件中的其他执行命令的正常执行提供必要的信息,例如,为封装组件中的命令提供命令参数,再例如,在业务逻辑希望从预定路径获取封装组件的运行结果的情况下,业务逻辑通过业务参数为封装组件提供预定路径信息,以便于封装组件中的相应命令可以将组件输出的运行结果存储到预定路径中。
本实施例中的组件封装器在确定出业务信息中的业务逻辑标识对应的封装组件之后,可以利用子工程的头文件中存储的信息将业务信息中的相应的业务参数作为相应组件的配置参数,如输入参数。本实施例的头文件中记录有各组件接口描述信息,组件封装器可以根据头文件中的组件接口描述信息明确获知每一个组件在被调用时所需要的输入参数等信息,从而组件封装器可以从业务逻辑传输来的业务参数中准确的挑选出每一个被调用的组件所需要的输入参数等信息,并赋予被调用的相应的组件,如作为输入参数赋予被调用的相应的组件。
本实施例中的业务信息中的业务参数还主要用于为第三方库的正常加载运行提供必要的信息,如业务参数可以为第三方库的正常加载运行提供必要的输入参数等。本实施例中的业务参数还可以用于为封装组件中的其他执行命令的正常执行提供必要的信息,如在业务逻辑希望从预定路径获取封装组件的运行结果的情况下,业务逻辑可以通过业务参数为封装组件提供预定路径信息,以便于封装组件中的相应命令可以将第三方库输出的运行结果存储到预定路径中。
本实施例中的组件封装器在确定出业务信息中的业务逻辑标识对应的封装组件之后,可以利用子工程的头文件中存储的信息将业务信息中的相应的业务参数作为相应第三方库的配置参数,如输入参数。本实施例的头文件中记录有各第三方库接口描述信息,组件封装器可以根据头文件中的第三方库接口描述信息明确获知每一个第三方库在被调用时所需要的输入参数等信息,从而组件封装器可以从业务逻辑传输来的业务参数中准确的挑选出每一个被调用的第三方库所需要的输入参数等信息,并赋予被调用的相应的第三方库,如作为输入参数赋予被调用的相应的第三方库。
在主工程中的业务逻辑直接调用子工程中的组件或者第三方库的情况下,业务逻辑也应该根据头文件中记载的组件接口描述信息以及第三方库接口描述信息来实现组件或者第三方库的调用。
本实施例中的头文件对于主工程中的业务逻辑以及组件封装器调用组件以及第三方库而言,是非常重要的。本实施例中的主工程得到头文件的方式可以为:在编译系统对主工程进行编译的过程中,头文件处理模块将头文件路径信息提供给编译系统,这样,编译系统可以根据头文件路径信息将头文件提供给主工程;从而主工程中的组件封装器可以获得头文件。
封装组件中所包含的所有内容(如组件调用信息、第三方库调用信息以及执行命令等)可以被称为调用及命令执行逻辑,在按照封装组件中的调用及命令执行逻辑执行了相应的操作后,可以认为封装组件运行结束。
需要特别说明的是,本实施例在根据封装组件中包含组件调用信息调用相应的组件,且被调用的组件在加载运行过程中,该加载运行的组件通常不会调用另一个组件或者调用第三方库,即便是该加载运行的组件调用了另一个组件或者调用了第三方库,也不会存在另一个组件或者第三方库回调该组件的现象;也就是说,本实施例中的组件之间以及组件与第三方库之间通常不存在调用现象,如果偶尔存在组件之间调用现象或者组件与第三方库之间的调用现象,则该调用现象也仅仅是组件之间的单向调用现象或者组件与第三方库之间的单向调用现象,不会存在不同组件之间相互交叉调用的现象以及组件与第三方库之间的相互交叉调用的现象。本实施例的一种较佳的情况是,子工程中的不同组件之间不存在相互交叉调用的现象,且子工程中的组件与第三方库之间也不存在相互交叉调用的现象。
在封装组件运行结束后,组件组装器可以将封装组件的运行结果直接返回给相应的业务逻辑;组件组装器也可以将封装组件的运行结果间接返回给相应的业务逻辑,例如,在业务逻辑要求组件组装器将封装组件的运行结果存储在相应的路径中的情况下,组件组装器可以在封装组件运行结束后,通知业务逻辑到相应的路径中获取封装组件的运行结果。
封装组件的运行结果的格式应符合业务逻辑的要求,以便于业务逻辑可以有效识别该运行结果。业务逻辑可以通过业务信息来表达其对运行结果的格式要求,除此之外,在设置组件以及业务逻辑的过程中,可以使两者都共同明确的获知运行结果的格式。
由于主工程中的组件封装器对业务逻辑和子工程中的组件和第三方库进行了有效的屏蔽,因此,本实施例中的主工程与子工程之间的耦合度较低,这样,本实施例可以使编译系统(也可以称为编译器)先对子工程中的所有组件进行编译或者对子工程中的所有组件以及所有第三方库进行编译,之后,库文件管理模块可以利用编译后的所有组件形成子工程库文件,也可以利用编译后的所有组件和编译后的所有第三方库形成子工程库文件,然后,库文件管理模块将子工程库文件路径信息提供给链接系统(也可以称为链接器),由链接系统根据子工程库文件路径信息将子工程库文件与主工程进行链接,最后,本实施例可以再利用编译系统对主工程进行编译。由此可知,在属于易变逻辑的业务逻辑发生变化时,本实施例可以不对子工程重新进行编译操作,而只对主工程进行编译操作即可,有效提高了应用软件的编译速度。
实施例三、计算机设备。
该计算机设备可以为单台计算机、多台计算机组成的计算机组、单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量计算机/网络服务器构成的云。本实施例的计算机设备包括上述实施例二中描述的应用软件实现装置,在此不再详细说明。
需要注意的是,本发明可以在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (13)
1.一种应用软件实现方法,包括:
主工程中的组件组装器接收主工程中的业务逻辑传输来的业务信息;
组件组装器根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件;
组件组装器在根据所述对应的封装组件包含的组件调用信息调用相应的组件过程中,将所述业务信息中的业务参数作为所述组件的配置参数,所述组件属于子工程;
对所述主工程和子工程进行编译,即对子工程中的所有组件分别进行编译,利用编译后的所有组件形成子工程库文件,将所述子工程库文件路径信息提供给链接系统,由链接系统将子工程库文件与主工程链接,然后,对主工程进行编译;
组件组装器将封装组件的运行结果返回给相应的业务逻辑。
2.根据权利要求1所述的方法,其中,所述封装组件包括:一个或者多个组件调用信息;且所述将所述业务信息中的业务参数作为所述组件的配置参数包括:
组件组装器根据子工程中的头文件记录的组件接口描述信息将所述业务信息中的相应的业务参数作为所述组件的配置参数。
3.根据权利要求1所述的方法,其中,所述封装组件还包含第三方库调用信息,所述第三方库属于子工程;且所述方法还包括:
组件组装器在根据所述对应的封装组件包含的第三方库调用信息调用相应的第三方库过程中,将所述业务信息中相应的业务参数作为相应的第三方库的配置参数。
4.根据权利要求3所述的方法,其中,所述封装组件包括:一个或者多个第三方库调用信息;且所述将所述业务信息中相应的业务参数作为所述第三方库的配置参数包括:
组件组装器根据子工程中的头文件记录的第三方库接口描述信息将所述业务信息中相应的业务参数作为相应的第三方库的配置参数。
5.根据权利要求3所述的方法,其中,所述主工程和子工程的编译过程包括:
对子工程中的所有组件和所有第三方库分别进行编译,利用编译后的所有组件和所有第三方库形成子工程库文件,将所述子工程库文件路径信息提供给链接系统,由链接系统将子工程库文件与主工程链接,然后,对主工程进行编译。
6.根据权利要求2或4所述的方法,其中,所述方法还包括:
将头文件路径信息提供给编译系统,由所述编译系统对主工程进行编译时,将所述头文件提供给主工程。
7.一种应用软件实现装置,包括:主工程和子工程,且所述主工程包括:业务逻辑和组件组装器,所述子工程包括组件;
组件组装器,适于接收业务逻辑传输来的业务信息;
组件组装器还适于根据预先设置的业务逻辑标识与封装组件的对应关系确定业务信息中的业务逻辑标识对应的封装组件;
组件组装器还适于在根据所述对应的封装组件包含的组件调用信息调用相应的组件过程中,将所述业务信息中的业务参数作为组件的配置参数;
库文件管理模块,适于在子工程中的所有组件进行编译后,利用编译后的所有组件形成子工程库文件,将所述子工程库文件路径信息提供给链接系统,以便由链接系统将子工程库文件与主工程链接,并由编译系统对主工程进行编译;
组件组装器还适于将封装组件的运行结果返回给相应的业务逻辑。
8.根据权利要求7所述的装置,其中,所述封装组件包括:一个或者多个组件调用信息;且所述组件组装器具体适于:根据子工程中的头文件记录的组件接口描述信息将所述业务信息中的相应的业务参数作为所述组件的配置参数。
9.根据权利要求7所述的装置,其中,所述子工程还包括第三方库;所述封装组件还包含第三方库调用信息,且所述组件组装器还适于:
在根据所述对应的封装组件包含的第三方库调用信息调用相应的第三方库过程中,将所述业务信息中相应的业务参数作为相应的第三方库的配置参数。
10.根据权利要求9所述的装置,其中,所述封装组件包括:一个或者多个第三方库调用信息;且所述组件组装器具体适于:根据子工程中的头文件记录的第三方库接口描述信息将所述业务信息中相应的业务参数作为相应的第三方库的配置参数。
11.根据权利要求9所述的装置,其中,所述装置还包括:
库文件管理模块,适于在子工程中的所有组件和所有第三方库分别进行编译后,利用编译后的所有组件和所有第三方库形成子工程库文件,将所述子工程库文件路径信息提供给链接系统,以便由链接系统将子工程库文件与主工程链接,并由编译系统对主工程进行编译。
12.根据权利要求8或10所述的装置,其中,所述装置还包括:
头文件处理模块,适于将头文件路径信息提供给编译系统,并由所述编译系统对主工程进行编译时将所述头文件提供给主工程。
13.一种计算机设备,包括权利要求7-12中任一权利要求所述的应用软件实现装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410830258.4A CN104572091B (zh) | 2014-12-25 | 2014-12-25 | 应用软件实现方法、装置以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410830258.4A CN104572091B (zh) | 2014-12-25 | 2014-12-25 | 应用软件实现方法、装置以及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572091A CN104572091A (zh) | 2015-04-29 |
CN104572091B true CN104572091B (zh) | 2017-11-03 |
Family
ID=53088257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410830258.4A Active CN104572091B (zh) | 2014-12-25 | 2014-12-25 | 应用软件实现方法、装置以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572091B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589695A (zh) * | 2015-12-23 | 2016-05-18 | 深圳市丽海弘金科技有限公司 | 业务功能的调用方法及系统 |
CN107015787B (zh) * | 2016-09-30 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 一种交互式应用框架设计的方法及装置 |
CN106775617A (zh) * | 2016-11-09 | 2017-05-31 | 深圳市中润四方信息技术有限公司 | 一种应用软件的业务逻辑配置方法及配置系统 |
CN106897072B (zh) * | 2017-02-28 | 2022-01-07 | 北京三快在线科技有限公司 | 业务工程调用方法、装置及电子设备 |
CN107798617B (zh) * | 2017-04-07 | 2021-04-13 | 平安科技(深圳)有限公司 | 保险业务处理方法和装置 |
CN108958730B (zh) * | 2017-08-23 | 2022-04-19 | 北京五八信息技术有限公司 | 应用程序组件共享方法及装置、终端设备及可读存储介质 |
CN108156236B (zh) * | 2017-12-22 | 2021-05-25 | 平安养老保险股份有限公司 | 业务请求处理方法、装置、计算机设备和存储介质 |
CN108363564A (zh) * | 2018-01-23 | 2018-08-03 | 平安普惠企业管理有限公司 | 多项目组件化实现方法、装置、终端设备及存储介质 |
CN109582303B (zh) * | 2018-10-31 | 2024-05-03 | 平安科技(深圳)有限公司 | 通用组件调用方法、装置、计算机设备及存储介质 |
CN109933334B (zh) * | 2019-03-13 | 2022-06-07 | 北京字节跳动网络技术有限公司 | 一种程序执行方法、装置、设备及介质 |
CN112558981B (zh) * | 2020-12-23 | 2024-02-06 | 上海万向区块链股份公司 | 基于jenkinsfile的自定义编译部署方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744038A (zh) * | 2005-09-28 | 2006-03-08 | 清华大学 | 一种基于统一构件封装件结构的构件组装方法 |
CN1866204A (zh) * | 2006-01-17 | 2006-11-22 | 华为技术有限公司 | 一种软件组件架构 |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN104216715A (zh) * | 2014-09-02 | 2014-12-17 | 深圳前海诺德咨询服务有限公司 | 一种Web App开发框架及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100860963B1 (ko) * | 2007-03-08 | 2008-09-30 | 삼성전자주식회사 | 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 |
-
2014
- 2014-12-25 CN CN201410830258.4A patent/CN104572091B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744038A (zh) * | 2005-09-28 | 2006-03-08 | 清华大学 | 一种基于统一构件封装件结构的构件组装方法 |
CN1866204A (zh) * | 2006-01-17 | 2006-11-22 | 华为技术有限公司 | 一种软件组件架构 |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN104216715A (zh) * | 2014-09-02 | 2014-12-17 | 深圳前海诺德咨询服务有限公司 | 一种Web App开发框架及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104572091A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572091B (zh) | 应用软件实现方法、装置以及计算机设备 | |
Zhang et al. | Enabling in-situ execution of coupled scientific workflow on multi-core platform | |
US9021440B1 (en) | System and method for automated test script generation | |
CN103092751B (zh) | 一种云环境下基于用户行为模型的web应用性能测试系统 | |
CN115617327A (zh) | 低代码页面搭建系统、方法及计算机可读存储介质 | |
CN107729230A (zh) | 一种基于控件模式下的web自动化测试装置及测试方法 | |
US9367428B2 (en) | Transparent performance inference of whole software layers and context-sensitive performance debugging | |
CN108139962B (zh) | 遥测系统扩展 | |
CN103136201A (zh) | 页面信息的展示方法和装置 | |
CN105308578B (zh) | 状态转变的诊断 | |
CN102855178A (zh) | 一种单元测试中生成Mock库的方法和装置 | |
CN107590075A (zh) | 一种软件测试方法及装置 | |
CN104657149A (zh) | 一种存储系统的管理模块的软件框架实现方法 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发系统及其方法 | |
CN104820582A (zh) | 一种基于Navigator的多核嵌入式DSP并行编程模型实现方法 | |
CN105867944A (zh) | Web前端数据操作层及其实现方法 | |
CN108038009A (zh) | 基于Web应用的前后端交互方法、装置及计算机设备 | |
CN113268227A (zh) | 一种零代码可视化的软件开发平台及开发方法 | |
CN111813739A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN105335203B (zh) | 共享库的二进制翻译执行方法和装置 | |
US9280361B2 (en) | Methods and systems for a real time transformation of declarative model and layout into interactive, digital, multi device forms | |
CN104516735B (zh) | 实现云计算环境自动化运维的二维分层方法 | |
CN114757124B (zh) | 一种基于xml的cfd工作流建模方法、装置、计算机及存储介质 | |
CN102779036B (zh) | 用于自动化技术的软件工具 | |
US8099694B1 (en) | Interactive tool for contemporaneous design of integrated circuits having different device packages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |