CN109960505B - 用户界面组件插件化方法、***、设备及存储介质 - Google Patents
用户界面组件插件化方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN109960505B CN109960505B CN201910241521.9A CN201910241521A CN109960505B CN 109960505 B CN109960505 B CN 109960505B CN 201910241521 A CN201910241521 A CN 201910241521A CN 109960505 B CN109960505 B CN 109960505B
- Authority
- CN
- China
- Prior art keywords
- plug
- user interface
- interface component
- injection point
- ins
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种用户界面组件插件化方法、***、设备及存储介质,用于在用户界面组件中添加所需的插件,所述方法包括:获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;在所述用户界面组件中安装创建的插件;定义所述插件捕获对应的注入点的顺序。通过采用本发明的方案,提供了一种插件化组件的机制,将组件的功能划分到插件当中,把功能边界限定在单独的插件内,大大降低了组件的整体复杂度,并且可以自由选择需要的功能插件自由组装,提高了组件性能表现,降低了资源压力。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种用户界面组件插件化方法、***、设备及存储介质。
背景技术
对于一个已有组件,如果想要修改其内部实现方式或者扩展功能,一般是在组件的原有代码上进行修改,新增的逻辑往往分散在组件的各个部分,增加了代码的复杂度,不便于开发和后期维护代码。
对于一个组件来说,如果其需要解决越来越多的问题,面对不同的业务场景,其内部实现的复杂度自然会变高,其开发和维护的难度也会指数级上升。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种用户界面组件插件化方法、***、设备及存储介质,提供了一种插件化组件的机制,将组件的功能划分到插件当中,大大降低了组件的整体复杂度。
本发明实施例提供一种用户界面组件插件化方法,用于在用户界面组件中添加所需的插件,所述方法包括如下步骤:
用于在用户界面组件中添加所需的插件,所述方法包括如下步骤:
获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;
创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;
在所述用户界面组件中安装创建的插件,并定义所述插件捕获对应的注入点的顺序。
可选地,所述注入点包括第一注入点和第二注入点,所述第二注入点嵌套在一所述第一注入点中;
所述获取各个所需插件所对应的注入点的名称和位置,包括获取所述第一注入点的名称和位置,以及获取所述第一注入点中嵌套的第二注入点的名称和位置;
所述在所述用户界面组件中对应的位置处注册所述注入点,包括在所述用户界面组件中所述第一注入点的位置处注册所述第一注入点,并在所述第一注入点的位置范围内所述第二注入点的位置处注册所述第二注入点。
可选地,所述在所述用户界面组件中安装创建的插件之后,还包括定义安装的插件与所述用户界面组件的设定事件的对应关系。
可选地,所述方法还包括如下步骤:
检测到所述用户界面组件发生设定事件时,向与所述设定事件对应的插件发送所述用户界面组件的事件通知,并向所述插件传递所述用户界面组件的原有处理逻辑;
接收所述插件对所述原有处理逻辑的修改数据并返还至所述用户界面组件。
可选地,所述设定事件包括所述用户界面组件的阶段变更和所述用户界面组件的交互行为。
可选地,所述在所述用户界面组件中安装创建的插件,包括如下步骤:
在所述用户界面组件中安装一插件时,判断待安装插件是否存在依赖插件以及依赖插件是否已安装;
如果存在依赖插件且所述依赖插件已安装,则安装所述待安装插件;
如果存在依赖插件,且所述依赖插件未安装,则首先安装所述依赖插件,于所述依赖插件安装完成后安装所述待安装插件;
如果不存在依赖插件,则安装所述待安装插件。
可选地,所述在所述用户界面组件中安装创建的插件之后,还包括接收各个所述插件的配置数据,并将所述配置数据分发至对应的插件。
可选地,所述获取各个所需插件所对应的注入点的名称和位置之前,还包括如下步骤:加载所述用户界面组件;以及采用预设的用户界面组件的全局默认配置数据对所述用户界面组件进行配置。
本发明实施例还提供一种用户界面组件插件化***,应用于所述的用户界面组件插件化方法,用于在用户界面组件中添加所需的插件,所述***包括:
组件管理模块,用于管理用户界面组件的数据和多个插件的数据;
注入点注册模块,用于获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;
插件创建模块,用于创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;
组件安装模块,用于在所述用户界面组件中安装所需的插件;
队列管理模块,用于定义并管理所述插件捕获对应的注入点的顺序。
本发明实施例还提供一种用户界面组件插件化设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的用户界面组件插件化方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的用户界面组件插件化方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本发明所提供的用户界面组件插件化方法、***、设备及存储介质具有下列优点:
本发明解决了现有技术中的问题,提供了一种插件化组件的机制,将组件的功能划分到插件当中,把功能边界限定在单独的插件内,大大降低了组件的整体复杂度,并且可以自由选择需要的功能插件自由组装,提高了组件性能表现,降低了资源压力。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的用户界面组件插件化方法的流程图;
图2是本发明一实施例的用户界面组件插件化***的结构示意图;
图3是本发明一实施例中增加事件管理的用户界面组件插件化***的结构示意图;
图4是本发明一实施例中增加配置管理的用户界面组件插件化***的结构示意图;
图5是本发明一实施例的用户界面组件插件化设备的示意图;
图6是本发明一实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
如图1所示,本发明实施例提供一种用户界面组件插件化方法,用于在用户界面组件中添加所需的插件,所述方法包括如下步骤:
S100:获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;
S200:创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;
S300:在所述用户界面组件中安装创建的插件,并定义所述插件捕获对应的注入点的顺序。此处,定义所述插件捕获对应的注入点的顺序,可以是根据安装插件的顺序定义,也可以是开发者自行定义。
本发明提供了一种插件化组件的机制,将组件的功能划分到插件当中。用户界面组件中只需要包括不可分离的基础功能和插件的注入点接口,而将拓展功能模块分散在各个插件中。可以根据需要在组件中安装所需要的插件,并且每个插件可以独立存在,独立安装、卸载和更新,方便用户界面组件的开发和后期维护。在用户界面组件开发的过程中,如果需要新增某种功能,只需要新增一个插件,定义插件在用户界面组件中的注入点,并在用户界面组件中安装新的插件即可。用户界面组件中需要包括基础的功能,如果将原本应处于组件内部的功能拆分到插件中,插件丢失了组件的上下文环境,将无法控制组件的内部状态,组件在视图生成和更新的过程中,插件也就无法混入自己的逻辑,控制用户界面的视图。
例如,对于一个表格用户界面来说,用户界面组件只需要定义表格的基本框架结构,如表格的行数、列数、行表头、列表头等静态资源。而将表格中显示的动态资源数据划分为插件的功能实现,并且可以将表格中排序、查找、函数计算等附加功能划分为不同的插件的功能实现。在用户界面组件显示时,在加载用户界面组件后,会根据定义的捕获所述用户界面组件的注入点的顺序调用各个插件捕获对应的注入点,在用户界面组件中加载对应的插件功能,将用户界面组件的状态数据传递给当前执行的插件,并获取插件返回的数据给用户界面组件,从而实现用户界面组件包括各个功能插件的完整界面的显示。在用户界面组件与用户进行交互时,响应于用户的交互行为,也可以加载对应的插件。例如,用户选择了排序功能,则可以加载排序插件,将表格中当前的处理逻辑发送给排序插件,并接收排序插件进行排序逻辑处理后返回的数据,再传递给用户界面组件。
如图2所示,本发明实施例还提供一种用户界面组件插件化***,用于将用户界面组件插件化,即在用户界面组件中添加多个功能插件,所述***包括如下各个模块:
组件管理模块M100,用于管理用户界面组件的数据和多个插件的数据;其中,组件管理模块M100主要用于管理用户界面组件的状态数据和多个插件的状态数据,例如,对于一个表格用户界面组件来说,表格当前的各行各列有什么样的数据,表格中各行的排序状态是怎样的,对于其中的查找插件来说,其当前查找的对象以及查找的结果是怎样的等等。用户界面组件的状态还可以包括用户界面组件所处的阶段、用户界面组件的可用状态和用户界面组件发生的用户交互行为等等。
注入点注册模块M200,用于获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;
插件创建模块M300,用于创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;
组件安装模块M400,用于在所述用户界面组件中安装所需的插件;
队列管理模块M500,用于定义并管理所述插件捕获对应的注入点的顺序。此处,定义所述插件捕获对应的注入点的顺序,可以是根据安装插件的顺序定义,也可以是开发者自行定义。并且在定义之后,开发者也可以根据需要进行顺序调整。所述插件捕获对应的注入点的顺序即为各个所述插件执行的顺序排序,例如先执行A插件,再执行C插件,再执行D插件,再执行B插件等等。
由于本发明的组件插件化方案是应用于用户界面组件的,考虑到用户界面组件是用于显示一个完整的用户交互界面的,其中的插件可以具体注册到某个特定的位置,或者注册到某个特定的位置范围内。此处,注入点的位置可以是具体的坐标位置,或者如表格用户界面中的行序号和列序号位置等等。在注入点注册模块M200注册了多个注入点之后,即对用户界面组件完成了注入点的划分,各个注入点相当于***了一个对应于插件的具有特定名称的标签。而在创建插件时,通过插件的名称和注入点的名称相关联,可以将插件***到对应的注入点中去,即将插件的脚本***到用户界面组件的脚本的注入点位置中,形成一个完整的用户界面组件的脚本。而对于开发者来说,并不需要到用户界面组件的脚本中去执行新增、修改和删除插件的动作,只需要通过本发明的用户界面组件插件化***,确定注入点的位置,即可以将对插件的新增、修改和删除操作传递到用户界面组件的脚本的对应位置,大大提高了处理效率,方便可靠。
在该实施例中,在划分注入点时,注入点的划分粒度决定了插件可以控制的视图细节。此外,注入点还可以相互嵌套。所述注入点包括第一注入点和第二注入点,所述第二注入点嵌套在一所述第一注入点中;第二注入点即为第一注入点的子注入点,例如,一个第一注入点是第3行,在第一注入点中嵌套了一个第二注入点是第3行第15列,以及一个第二注入点是第3行第18列;
所述获取各个所需插件所对应的注入点的名称和位置,包括获取所述第一注入点的名称和位置,以及获取所述第一注入点中嵌套的第二注入点的名称和位置;
所述在所述用户界面组件中对应的位置处注册所述注入点,包括在所述用户界面组件中所述第一注入点的位置处注册所述第一注入点,并在所述第一注入点的位置范围内所述第二注入点的位置处注册所述第二注入点。
在该实施例中,所述在所述用户界面组件中安装创建的插件之后,还包括定义安装的插件与所述用户界面组件的设定事件的对应关系。所述队列管理模块M300还用于管理各个所需的插件与所述用户界面组件的事件之间的对应关系,即设定在何种事件处会触发哪一些已安装的插件工作,在事件实际发生后,调用对应的插件,将用户界面组件当前的状态数据传递给插件,插件内部逻辑对数据进行处理后,再反馈回用户界面组件。
因此,在该实施例中,所述用户界面组件插件化方法还包括如下步骤:
检测到所述用户界面组件发生设定事件时,向与所述设定事件对应的插件发送所述用户界面组件的事件通知,并向所述插件传递所述用户界面组件的原有处理逻辑;
接收所述插件对所述原有处理逻辑的修改数据并返还至所述用户界面组件。
对应地,如图3所示,所述用户界面组件插件化***还包括事件管理模块M600,所述事件管理模块M600用于向所述插件发送所述用户界面组件的事件通知。进一步地,所述用户界面组件插件化***还包括事件管理模块M600,所述事件管理模块M600用于向所述插件发送所述用户界面组件的事件通知。
在该实施例中,所述设定事件包括所述用户界面组件的阶段变更和所述用户界面组件的交互行为。用户界面组件的阶段变更可以包括组件创建完成、用户界面准备完成、用户界面组件卸载等等,用户界面组件的交互行为可以包括用户点击查看详情、用户点击排序、用户查询数据等等。例如,在用户界面准备完成时,依照队列管理模块M500中定义和管理的顺序依次调用各个插件,使得各个插件捕获对应的注入点,完成用户界面的完整显示。在用户查询数据时,调用查询功能插件,并将查询的对象等数据传递给查询功能插件,由查询功能插件查询后返回结果给用户界面组件,并通过用户界面显示给用户。
在该实施例中,插件之间可能会存在依赖关系,例如B插件依赖A插件,那么B插件的安装和功能实现必须要依赖A插件的安装和功能,此处定义A插件为B插件的依赖插件。由于插件依赖性的存在,插件的安装也应该有先后顺序,即被依赖的插件应该先于依赖它的插件先安装,才能保证依赖它的插件的安装和使用正常。
所述在所述用户界面组件中安装创建的插件,包括如下步骤:
在所述用户界面组件中安装一插件时,判断待安装插件是否存在依赖插件以及依赖插件是否已安装;
如果存在依赖插件且所述依赖插件已安装,则安装所述待安装插件;
如果存在依赖插件,且所述依赖插件未安装,则首先安装所述依赖插件,于所述依赖插件安装完成后安装所述待安装插件;
如果不存在依赖插件,则安装所述待安装插件。
在该实施例中,所述用户界面组件插件化方法中,在所述用户界面组件中安装创建的插件之后,还包括接收各个所述插件的配置数据,并将所述配置数据分发至对应的插件。
如图4所示,在该实施例中,所述用户界面组件插件化***还包括插件配置模块M700,用于从所述用户界面组件接收插件的配置数据,并将所述配置数据分发至对应的插件。配置的内容可以是插件具体的功能选择,例如可以预先设定一个插件可以支持的全部功能,例如排序插件支持从大到小排序、从小到大排序、按照类别排序等等,对该排序插件进行配置时,可以选择开启从大到小排序,在用户界面组件显示时,可以将该插件对应的数据进行从大到小的排序后显示。在用户界面组件执行过程中,可以根据需要更改排序方式,例如由开发者通过插件配置模块M700将排序插件更改为按照从小到大排序。或者,可能会因为使用该界面的用户的不同交互行为触发配置,例如用户选择变更排序方式的按钮,也可能是更改排序插件的排序方式。
该实施例通过插件配合模块M700,由开发者对插件进行配置,并且将配置的数据分发到对应的插件中,对于开发者来说,配置仍然是针对组件进行的,配置仍然由组件接收,并分发到具体的插件下,由具体的插件作出处理,而无需针对单个插件一个个进行配置。
如图4所示,在该实施例中,所述用户界面组件插件化***还包括默认配置模块M800,用于设置所述用户界面组件的全局默认配置数据。
对应地,所述用户界面组件插件化方法中,所述获取各个所需插件所对应的注入点的名称和位置之前,还包括如下步骤:
加载所述用户界面组件;以及采用预设的用户界面组件的全局默认配置数据对所述用户界面组件进行配置。
通过设置全局默认配置数据,在创建一个新的用户界面组件实例时,可以首先对其进行默认化配置,避免用户界面组件在多次复用的情况下,需要重复配置组件。在进行全局默认配置之后,开发者还可以对用户界面组件进行配置的更改,更改的配置会覆盖之前默认的配置,实现用户界面组件的实例化和具体化。此方式特别适用于连续创建多个功能近似的用户界面时,在创建每个用户界面之初,可以对其均进行默认全局配置,然后根据每个用户界面的特性进行少量配置的修改即可,大大节省了创建用户界面组件的时间。
此外,在创建多个用户界面组件时,用户界面组件中的插件也可以复用。例如,对于排序插件、查找插件等十分常用的插件,将不同用户界面组件中注册的注入点与插件通过名称或其他标识信息进行关联即可,本发明的用户界面组件插件化***可以自动将对应的插件安装和注入到对应的用户界面组件中,从而大大提高了开发者开发用户界面组件的效率。
在采用本发明的用户界面组件插件化方法和***创建完成一个完整的用户界面组件之后,可以很方便地对用户界面组件进行应用和修改。例如,在需要修改用户界面组件中某一个具体功能时,可以只更新该功能所对应的插件,并且将用户界面组件中注入的原有插件进行卸载,然后安装更新后的新的插件。又例如,在创建完成一个用户界面组件之后,需要增加某一个新的功能,可以创建该功能相对应的插件,并且在用户界面组件中注册一个新的注入点,将注入点与插件进行关联,并安装该新创建的插件即可,而无需对用户界面组件整体的脚本进行大的变动。
本发明实施例还提供一种用户界面组件插件化设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的用户界面组件插件化方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为方法、***或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
本发明的用户界面组件插件化设备提供了一种插件化组件的机制,将组件的功能划分到插件当中,把功能边界限定在单独的插件内,大大降低了组件的整体复杂度,并且可以自由选择需要的功能插件自由组装,提高了组件性能表现,降低了资源压力。
下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组合可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组合(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的用户界面组件插件化方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,与现有技术相比,本发明所提供的用户界面组件插件化方法、***、设备及存储介质具有下列优点:
本发明解决了现有技术中的问题,提供了一种插件化组件的机制,将组件的功能划分到插件当中,把功能边界限定在单独的插件内,大大降低了组件的整体复杂度,并且可以自由选择需要的功能插件自由组装,提高了组件性能表现,降低了资源压力。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种用户界面组件插件化方法,其特征在于,用于在用户界面组件中添加所需的插件,所述用户界面组件包括不可分离的基础功能和插件的注入点接口,且拓展功能模块分散在各个插件中,所述方法包括如下步骤:
获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;
创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;
在所述用户界面组件中安装创建的插件,并定义所述插件捕获对应的注入点的顺序;
其中,所述在所述用户界面组件中安装创建的插件之后,还包括定义安装的插件与所述用户界面组件的设定事件的对应关系;
所述方法还包括如下步骤:
检测到所述用户界面组件发生设定事件时,向与所述设定事件对应的插件发送所述用户界面组件的事件通知,并向所述插件传递所述用户界面组件的原有处理逻辑;
接收所述插件对所述原有处理逻辑的修改数据并返还至所述用户界面组件。
2.根据权利要求1所述的用户界面组件插件化方法,其特征在于,所述注入点包括第一注入点和第二注入点,所述第二注入点嵌套在一所述第一注入点中;
所述获取各个所需插件所对应的注入点的名称和位置,包括获取所述第一注入点的名称和位置,以及获取所述第一注入点中嵌套的第二注入点的名称和位置;
所述在所述用户界面组件中对应的位置处注册所述注入点,包括在所述用户界面组件中所述第一注入点的位置处注册所述第一注入点,并在所述第一注入点的位置范围内所述第二注入点的位置处注册所述第二注入点。
3.根据权利要求1所述的用户界面组件插件化方法,其特征在于,所述设定事件包括所述用户界面组件的阶段变更和所述用户界面组件的交互行为。
4.根据权利要求1所述的用户界面组件插件化方法,其特征在于,所述在所述用户界面组件中安装创建的插件,包括如下步骤:
在所述用户界面组件中安装一插件时,判断待安装插件是否存在依赖插件以及依赖插件是否已安装;
如果存在依赖插件且所述依赖插件已安装,则安装所述待安装插件;
如果存在依赖插件,且所述依赖插件未安装,则首先安装所述依赖插件,于所述依赖插件安装完成后安装所述待安装插件;
如果不存在依赖插件,则安装所述待安装插件。
5.根据权利要求1所述的用户界面组件插件化方法,其特征在于,所述在所述用户界面组件中安装创建的插件之后,还包括接收各个所述插件的配置数据,并将所述配置数据分发至对应的插件。
6.根据权利要求1所述的用户界面组件插件化方法,其特征在于,所述获取各个所需插件所对应的注入点的名称和位置之前,还包括如下步骤:
加载所述用户界面组件;
采用预设的用户界面组件的全局默认配置数据对所述用户界面组件进行配置。
7.一种用户界面组件插件化***,其特征在于,应用于权利要求1至6中任一项所述的用户界面组件插件化方法,用于在用户界面组件中添加所需的插件,所述***包括:
组件管理模块,用于管理用户界面组件的数据和多个插件的数据;
注入点注册模块,用于获取各个所需插件所对应的注入点的名称和位置,在所述用户界面组件中对应的位置处注册所述注入点;
插件创建模块,用于创建各个所述注入点所对应的插件,所述插件与所对应的注入点通过名称相关联;
组件安装模块,用于在所述用户界面组件中安装所需的插件;
队列管理模块,用于定义并管理所述插件捕获对应的注入点的顺序。
8.一种用户界面组件插件化设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至6中任一项所述的用户界面组件插件化方法的步骤。
9.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至6中任一项所述的用户界面组件插件化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910241521.9A CN109960505B (zh) | 2019-03-28 | 2019-03-28 | 用户界面组件插件化方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910241521.9A CN109960505B (zh) | 2019-03-28 | 2019-03-28 | 用户界面组件插件化方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960505A CN109960505A (zh) | 2019-07-02 |
CN109960505B true CN109960505B (zh) | 2022-11-25 |
Family
ID=67025104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910241521.9A Active CN109960505B (zh) | 2019-03-28 | 2019-03-28 | 用户界面组件插件化方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960505B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031184B (zh) * | 2019-12-12 | 2021-07-16 | 江苏满运物流信息有限公司 | 呼叫交互方法、***、计算机设备和存储介质 |
CN111857929B (zh) * | 2020-07-23 | 2023-05-30 | 杭州海康威视数字技术股份有限公司 | 应用程序界面显示的方法、装置及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577207A (zh) * | 2012-08-01 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种自定义界面***中界面组件的加载方法和装置 |
US8751466B1 (en) * | 2014-01-12 | 2014-06-10 | Machine Intelligence Services, Inc. | Customizable answer engine implemented by user-defined plug-ins |
CN106446049A (zh) * | 2016-08-31 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 一种页面数据交互装置及方法 |
CN107291458A (zh) * | 2017-06-06 | 2017-10-24 | 北京知道创宇信息技术有限公司 | 一种Web应用的插件化构建方法、***及服务器 |
CN107911401A (zh) * | 2017-08-04 | 2018-04-13 | 上海壹账通金融科技有限公司 | 应用插件扩展功能方法及应用服务器 |
-
2019
- 2019-03-28 CN CN201910241521.9A patent/CN109960505B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577207A (zh) * | 2012-08-01 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种自定义界面***中界面组件的加载方法和装置 |
US8751466B1 (en) * | 2014-01-12 | 2014-06-10 | Machine Intelligence Services, Inc. | Customizable answer engine implemented by user-defined plug-ins |
CN106446049A (zh) * | 2016-08-31 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 一种页面数据交互装置及方法 |
CN107291458A (zh) * | 2017-06-06 | 2017-10-24 | 北京知道创宇信息技术有限公司 | 一种Web应用的插件化构建方法、***及服务器 |
CN107911401A (zh) * | 2017-08-04 | 2018-04-13 | 上海壹账通金融科技有限公司 | 应用插件扩展功能方法及应用服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN109960505A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8561058B2 (en) | Methods and systems for dynamically generating installation configuration files for software | |
US20240045850A1 (en) | Systems and methods for database orientation transformation | |
US8464247B2 (en) | Methods and systems for dynamically generating installation configuration files for software | |
US8381176B1 (en) | Software build orchestration framework | |
US8640121B2 (en) | Facilitating multi-installer product installations | |
US20130219307A1 (en) | System and method for runtime user interface management | |
US11669334B2 (en) | Just-in-time containers | |
CN111221521A (zh) | 日志代码的生成方法、装置、计算机***和可读存储介质 | |
US11741002B2 (en) | Test automation systems and methods using logical identifiers | |
US20130047148A1 (en) | Automated service solution delivery | |
US20170075686A1 (en) | Method for updating library, and terminal and system therefor | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
US10275234B2 (en) | Selective bypass of code flows in software program | |
CN109960505B (zh) | 用户界面组件插件化方法、***、设备及存储介质 | |
CN111857765A (zh) | 用于药物设计***的插件***及其生成方法和更新方法 | |
US11086696B2 (en) | Parallel cloned workflow execution | |
US10514940B2 (en) | Virtual application package reconstruction | |
CN110717992B (zh) | 调度模型的方法、装置、计算机***和可读存储介质 | |
US20150212866A1 (en) | Management system for service of multiple operating environments, and methods thereof | |
US11907707B2 (en) | Methods and systems for orchestrating software application variant configuration | |
US20090240724A1 (en) | Environment definition files for an environment definition system | |
CN111859403B (zh) | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 | |
CN114035864A (zh) | 接口处理方法、接口处理装置、电子设备和存储介质 | |
CN113986258A (zh) | 业务发布方法、装置、设备及存储介质 | |
CN114253599A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190702 Assignee: Nanjing Manyun Cold Chain Technology Co.,Ltd. Assignor: JIANGSU MANYUN SOFTWARE TECHNOLOGY Co.,Ltd. Contract record no.: X2023980038397 Denomination of invention: Method, System, Device, and Storage Medium for Plugging User Interface Components Granted publication date: 20221125 License type: Common License Record date: 20230724 |
|
EE01 | Entry into force of recordation of patent licensing contract |