CN102541564B - 一种ui复用方法及装置 - Google Patents
一种ui复用方法及装置 Download PDFInfo
- Publication number
- CN102541564B CN102541564B CN201110460269.4A CN201110460269A CN102541564B CN 102541564 B CN102541564 B CN 102541564B CN 201110460269 A CN201110460269 A CN 201110460269A CN 102541564 B CN102541564 B CN 102541564B
- Authority
- CN
- China
- Prior art keywords
- subobject
- parent object
- list
- page
- control
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种UI复用方法,所述方法包括:获取通用UI父页面;以面向对象的方式描述UI父页面,获得UI父对象;继承所述UI父对象,生成UI子对象;转换所述UI子对象为UI子页面。本发明通过将要复用的UI父页面以面向对象的方式描述,使得父对象有很好的封装性,从而在很大程度上减少了UI复用的工作量。本发明还提供了一种装置,所述装置包括:获取单元,用于获取通用UI父页面;描述单元,用于以面向对象的方式描述UI父页面,获得UI父对象;继承单元,用于继承所述UI父对象,生成UI子对象;转换单元,用于转换所述UI子对象为UI子页面。
Description
技术领域
本发明涉及WEB应用程序开发领域,尤其是涉及一种UI复用方法及装置。
背景技术
UI(用户界面)开发是基于B/S架构的WEB应用程序的开发中的重要环节,通常会消耗整个开发程序70%以上的工作量。如何有效的缩减UI开发的工作量,是提高B/S架构的WEB应用程序的开发效率的重中之重。
本领域的人员可以知道,在UI的开发过程中,很多UI的内容是重复的,为此,在UI的开发过程中经常使用UI复用的方法来缩减UI的开发工作量。开发团队在长期项目的开发过程中会积累一批设计良好、有一定通用性的UI页面作为通用UI。UI复用的具体过程是:
确定通用UI。在开发新的UI时,分析用户需求,确定具体的通用UI。通常是确定于用户需求的UI页面最类似的通用UI。
通过采用从通用UI中拷贝并粘贴的方法建立新的UI,并根据需要对其进行修改,直到符合用户需求。
这种方式,是目前提高B/S架构UI开发效率最直接、最有效的方法。
但现有的方式中,B/S架构下的UI使用的是结构化并不良好的HTML语言描述页面。由于HTML的结构化不好,不具有封装性,在复用时很难区分出修改和不需要修改的内容。通过整段代码拷贝粘贴后进行修改,会影响到本不需要修改的地方,使得局部修改变成一个整体修改的过程。整体修改意味着整体测试,因此这样的方式加大了工作量,降低了UI的开发效率。
另外,由于HTML的混乱结构,使得用户在其代码中查找某个特定的控件十分困难,极易出错,降低了UI复用的准确度。
发明内容
本发明提供一种UI复用方法及装置,能够缩减UI复用的工作量,提高UI开发的效率。
本发明提供了一种UI复用方法,所述方法包括:
获取通用UI父页面;
以面向对象的方式描述UI父页面,获得UI父对象;
继承所述UI父对象,生成UI子对象;
转换所述UI子对象为UI子页面。
优选的,所述继承所述UI父对象,生成UI子对象包括:
复制所述UI父对象的所有控件ID至所述UI子对象。
优选的,所述继承所述UI父对象,生成UI子对象还包括以下任意一项或几项:
保存所述UI父对象需要修改的所述控件ID对应的控件属性和/或事件响应脚本至所述UI子对象;
保存所述UI父对象需要修改的页面脚本至所述UI子对象;
保存所述UI父对象需要增加的引用资源至所述UI子对象;
保存所述UI父对象需要增加的控件ID、所述控件ID对应控件的控件属性和事件响应脚本至所述UI子对象;
在所述UI子对象中删除所述UI父对象需要删除的控件ID。
优选的,所述转换所述UI子对象为UI子页面包括:
解析所述UI父对象和所述UI子对象,获得页面脚本列表,页面控件列表和资源引用列表;
提取所述页面控件列表中的事件脚本;合并所述事件脚本和所述页面脚本列表生成脚本文件;
提取所述页面控件列表中的页面控件;合并所述页面控件和所述资源引用列表为页面文件;
转换所述脚本文件和所述页面文件为UI子页面。
优选的,所述解析所述UI父对象和所述UI子对象,获得页面脚本列表包括:
判断所述UI子对象是否有UI父对象;
若有,获取所述UI父对象的页面脚本列表;
获取所述UI子对象的页面脚本列表;
合并所述UI子对象的页面脚本列表至所述UI父对象的页面脚本列表;若所述UI子对象的页面脚本列表中的公共变量或公共方法与所述UI父对象的页面脚本列表中的公共变量或公共方法相同,则使用所述UI子对象的页面脚本列表中的公共变量或公共方法的值覆盖所述UI父对象的所述页面脚本列表中的对应公共变量或公共方法的值。
优选的,所述解析所述UI父对象和所述UI子对象,获得页面控件列表为:
获取所述UI子对象的页面控件列表;
判断所述UI子对象是否有UI父对象;
若有,根据所述UI子对象的页面控件列表中的子控件判断所述UI父对象中是否有对应的父控件ID;
若有,则将所述父控件具有而所述子控件不具有的属性和事件响应脚本复制到所述子控件。
优选的,所述解析所述UI父对象和所述UI子对象,获得资源引用列表为:
判断所述UI子对象是否有UI父对象;
若有,获取所述UI父对象的资源引用列表;
获取所述UI子对象的资源引用列表;
合并所述UI子对象的资源引用列表至所述UI父对象的资源引用列表;若所述UI子对象的资源引用列表中的资源引用与所述UI父对象的资源引用列表中的资源引用相同,则忽略所述资源引用。
本发明还提供了一种装置,所述装置包括:
获取单元,用于获取通用UI父页面;
描述单元,用于以面向对象的方式描述UI父页面,获得UI父对象;
继承单元,用于继承所述UI父对象,生成UI子对象;
转换单元,用于转换所述UI子对象为UI子页面。
优选的,所述继承单元包括:
第一继承子单元,用于复制所述UI父对象的所有控件ID至所述UI子对象。
优选的,所述继承单元还包括以下任意一个或几个单元:
第二继承子单元,用于保存所述UI父对象需要修改的所述控件ID对应的控件属性和/或事件响应脚本至所述UI子对象。
第三继承子单元,用于保存所述UI父对象需要修改的页面脚本至所述UI子对象。
第四继承子单元,用于保存所述UI父对象需要增加的引用资源至所述UI子对象。
第五继承子单元,用于保存所述UI父对象需要增加的控件ID、所述控件ID对应控件的控件属性和事件响应脚本至所述UI子对象。
第六继承子单元,用于在所述UI子对象中删除所述UI父对象需要删除的控件ID。
优选的,所述转换单元包括:
解析单元,所述解析单元包括第一解析单元、第二解析单元和第三解析单元,分别用于解析所述UI父对象和所述UI子对象,获得页面脚本列表、页面控件列表和资源引用列表;
第一提取单元,用于提取所述页面控件列表中的事件脚本,合并所述事件脚本和所述页面脚本列表生成脚本文件;
第二提取单元,用于提取所述页面控件列表中的页面控件;合并所述页面控件和所述资源引用列表为页面文件;
第一转换子单元,用于转换所述脚本文件和所述页面文件为UI子页面。
优选的,所述第一解析单元包括:
第一判断单元,用于判断所述UI子对象是否有UI父对象;
第一获取单元,用于在判断所述UI子对象有UI父对象时获取所述UI父对象的页面脚本列表和所述UI子对象的页面脚本列表;
第一合并单元,用于合并所述UI子对象的页面脚本列表至所述UI父对象的页面脚本列表;若所述UI子对象的页面脚本列表中的公共变量或公共方法与所述UI父对象的页面脚本列表中的公共变量或公共方法相同,则使用所述UI子对象的页面脚本列表中的公共变量或公共方法的值覆盖所述UI父对象的所述页面脚本列表中的对应公共变量或公共方法的值。
优选的,所述第二解析单元包括:
第二获取单元,用于获取所述UI子对象的页面控件列表;
第二判断单元,用于判断所述UI子对象是否有UI父对象;
第三判断单元,用于在所述UI子对象有UI父对象时,根据所述UI子对象的页面控件列表中的子控件判断所述UI父对象中是否有对应的父控件;
第二合并单元,用于在判断所述UI父对象中有对应的父控件时,将所述父控件具有而所述子控件不具有的属性和事件响应脚本合并到所述子控件。
优选的,所述第三解析单元包括:
第四判断单元,用于判断所述UI子对象是否有UI父对象;
第三获取单元,用于在所述UI子对象有UI父对象时,获取所述UI父对象的资源引用列表和所述UI子对象的资源引用列表;
第三合并单元,用于合并所述UI子对象的资源引用列表至所述UI父对象的资源引用列表;若所述UI子对象的资源引用列表中的资源引用与所述UI父对象的资源引用列表中的资源引用相同,则忽略所述资源引用。
与现有技术相比,本发明有如下有益效果:
本发明中,通过以面向对象的方式描述UI父页面,获得的UI父对象具有良好的封装性,能够很容易的确定UI父对象要修改的内容。而且本发明利用面向对象中的继承特性,在复用时,只需在UI子对象中保存修改的内容,这样的方式使得在进行之后的测试时,只需对UI子对象中的内容进行测试即可。相对现有技术,缩减了大量工作量,很大程度上提高了UI开发的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法实施例1流程图;
图2是本发明实施例2以面向对象方式描述的UI父对象示意图;
图3是本发明方法实施例3流程图;
图4是本发明方法实施例4流程图;
图5是本发明方法实施例5流程图;
图6是本发明方法实施例6流程图;
图7是本发明装置实施例7结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例1提供了一种UI复用方法,所述方法包括如下步骤:
S11、获取通用UI父页面。
通用UI父页面是指为了提高UI复用度,开发团队在长期项目开发过程中积累的一批设计良好、具有一定通用性的UI父页面。在开发具体项目时,可以通过分析用户UI需求,选择复用的通用UI父页面。比如,当要开发的页面是一个关于体育彩票的页面时,通常会选用跟体育彩票相关的通用UI页面。
S12、以面向对象的方式描述UI父页面,获得UI父对象。
面向对象(Object Oriented,00)是当前计算机界关心的重点,它是90年代软件开发方法的主流。现在面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。其特点具有良好的封装性,可以将同一类别的内容归类封装起来。因此,可以使用面向对象的方法描述UI页面以解决使用HTML语言描述导致页面结构混乱,缺乏封装的问题。具体的可以使用结构化良好的XML语言描述UI页面。
在本发明的实施例2中,提供了一种使用XML语言描述UI页面的具体方式。参见图2,为描述后的UI父对象。
其中,<controls/>用于存放页面控件、属性,事件响应脚本。
<scripts/>用于存放页面脚本。
<resources/>用于存放页面引用外部资源的信息。
与UI无关的模型元数据信息存放在如下标签中:
<baseinfo/>用于存放UI父对象基本信息,如创建者,创建时间,修改时间等。
<dependences/>用于存放UI父对象的依赖信息。
可以看出,用XML语言描述后的UI父对象同一类的内容被封装在了同一标签内,结构清楚且易于查找。
S13、继承所述UI父对象,生成UI子对象。
继承是在编程中使用的概念,在面向对象编程中,如C++和JAVA中都有继承。具体的它是指一个对象直接使用另一对象的属性和方法。它是面向对象的设计方式的特性之一。其中被使用的对象被称为父对象,使用父对象的对象为子对象。
继承的意义在于使用“最少代码”实现“最大复用”。因此在继承时只需要将不同于UI父对象的内容保存在UI子对象中即可。而不需要将UI父对象的所有内容拷贝到UI子对象中。
在本发明的继承中,首先需要创建一个页面模型,并复制所述UI父对象的所有控件ID至所述的页面模型中。该页面模型实际就是之后生成的UI子对象的初始化。
接下来就需要根据要生成的UI子对象的具体情况进行修改。
当要生成的UI子对象中有控件的控件属性或事件响应脚本与UI父对象中的对应的控件的控件属性、事件响应脚本不同时,需要将该不同的控件属性、事件响应脚本即该UI父对象需要修改的所述控件对应的控件属性或事件响应脚本保存至所述UI子对象。当对应同一控件,其控件属性和事件响应脚本均不同时,就将该不同的控件属性和事件响应脚本保存至UI子对象的对应控件ID中。
当要生成的UI子对象的页面脚本与UI父对象的页面脚本不同时,需要保存该不同的页面脚本即该UI父对象需要修改的页面脚本至UI子对象中。
当要生成的UI子对象中有UI父对象中没有的资源引用时,需要保存该UI父对象需要增加的引用资源至所述UI子对象。
当要生成的UI子对象中有UI父对象没有的控件时,需要保存该UI父对象需要增加的控件的ID、对应的控件属性和事件响应脚本至UI子对象中。
而当要生成的UI子对象中不具有UI父对象的某些控件时,需要在UI子对象中删除该UI父对象需要删除的控件ID。
因为UI父对象采用面向对象的方式描述,在确定要生成的UI子对象与UI父对象的不同,即确定UI父对象需要修改的地方时,能够很容易的从各个标签中进行对比查找。比如判断要生成的UI子对象的引用的外部资源是否与UI父对象的完全相同时,以图2为例,只需要查看<resources/>标签中的内容即可。而不需要对UI父对象中的全部代码进行对比查看。
本发明应用了面向对象的继承特性,所以在UI子对象中只需要保存修改的内容。在进行之后的测试时,只需要对UI子对象中的内容进行测试即可,相对现有技术中,不区分修改部分和未修改部分而全部测试的方式,很大程度上减少了测试的工作量,提高了UI开发的效率。
从以上过程可以看出,应用面向对象的方式描述后的UI父对象进行复用,能够很快的找出需要需该的地方在继承时只需要修改进行修改时生成的UI对象
S14、转换所述UI子对象为UI子页面。
复用的目的最终是要生成UI页面,因此需要将生成的UI子对象转换为UI子页面。具体的是指将UI子对象由面向对象的语言描述形式转换为HTML的语言描述形式。
UI子对象和父对象中包括控件信息、脚本信息以及资源引用等信息,其中控件信息中还包含事件脚本信息。为方便系统进行转换,可在转换时将脚本信息区分出来。同时根据继承的规则,生成的UI子对象中只包含与UI父对象不同的信息。因此,在上述语言转换之前,首先需要结合UI父对象获得UI子对象实际包含的全部信息。
在本发明的实施例3中,参见图3,为转换UI子对象转换为UI子页面的具体方法,包括:
S31、解析UI父对象和UI子对象,获得页面脚本列表,页面控件列表和资源引用列表。
该步骤实际是将UI子对象引用的UI父对象中的内容和UI子对象修改的内容结合在一起的过程。得到的为UI子对象的实际信息。
对象中的信息一般包括页面脚本信息、页面控件信息和资源引用信息。因此,可解析UI父对象和UI子对象,分别获取页面脚本列表,页面控件列表和资源引用列表。
S32、提取页面控件列表中的事件脚本;合并事件脚本和页面脚本列表生成脚本文件。
S33、提取页面控件列表中的页面控件;合并页面控件和资源引用列表为页面文件。
页面控件列表既包含事件脚本,又包含页面控件信息,为方便后续转换UI子对象为UI子页面,可将页面控件中的事件脚本信息和页面控件信息分别提取出来。并将事件脚本信息与页面脚本信息合并生成脚本文件,将页面控件信息与资源引用信息合并生成页面文件。
S34、转换脚本文件和页面文件为UI子页面。
具体的,使用HTML语言分别描述脚本文件和页面文件,将其转换为UI页面。
对应本发明的继承方式,本发明实施例4、5、6分别提供了一种获得页面脚本列表、页面控件列表和资源引用列表的方法。
其中图4为页面脚本列表的获取方法,具体包括:
S41、判断所述UI子对象是否有UI父对象。
在继承UI父对象生成UI子对象时,会在UI子对象中保存有UI父对象的属性信息,便于UI子对象能够引用UI父对象中的信息。因此,具体的可以通过查看UI子对象中是否有此类属性信息来确认是否有UI父对象。进一步的,还可以根据这些属性信息在数据库中查找是否有对应的UI父对象。
S42、若有,获取所述UI父对象的页面脚本列表。
具体的,可通过UI子对象中保存的UI父对象的属性信息查找到对应的UI父对象,从而获取UI父对象的页面脚本列表。
S43、获取所述UI子对象的页面脚本列表。
其中保存有UI子对象不同于UI父对象的页面脚本信息。
S44、合并所述UI子对象的页面脚本列表至所述UI父对象的页面脚本列表;若所述UI子对象的页面脚本列表中的公共变量或公共方法与所述UI父对象的页面脚本列表中的公共变量或公共方法相同,则使用所述UI子对象的页面脚本列表中的公共变量或公共方法的值覆盖所述UI父对象的所述页面脚本列表中的对应公共变量或公共方法的值。
根据本发明的继承方法,只有在UI子对象的页面脚本中的公共变量或公共方法的值不同于UI父对象中对应的公共变量或公共方法的值时,才会在UI子对象中保存该公共变量或公共方法及对应的值。因此,通过获取UI父对象的页面脚本信息并用UI子对象中修改后的值覆盖UI父对象中对应公共变量或公共方法的值,就使得生成的页面脚本列表中全部为符合UI子对象的页面脚本信息。
参见图5,为本发明页面控件列表的获取方法,具体包括:
S51、获取UI子对象的页面控件列表。
根据本发明的继承方法,UI子对象的页面控件列表中应当包含UI父对象的所有控件ID、修改的控件属性及事件响应脚本和添加的控件ID以及与该ID对应的控件属性和事件响应脚本。
S52、判断UI子对象是否有UI父对象。
同实施例4一样,可以通过UI子对象中保存的UI父对象的属性信息来确认是否有UI父对象。
S53、若有,根据所述UI子对象的页面控件列表中的子控件ID判断所述UI父对象中是否有对应的父控件ID。
子控件和父控件是指分别保存在UI子对象和UI父对象中的同一控件ID对应的控件。
因为在UI子对象中保存的控件ID可能是添加的,也可能是从UI父对象中直接复制的,复制过来后修改的,所以需要首先判断该控件是否是从UI父对象中复制过来的。
S54、若有,则将所述父控件具有而所述子控件不具有的属性和事件响应脚本复制到所述子控件。
这样,子控件就从UI父对象中获取了引用的控件属性和事件响应脚本。并与添加的控件ID及对应的属性、事件响应脚本和修改的控件信息一起组合为UI子对象控件信息。
在本发明的另一实施例中,可以在步骤S52之后采用如下方式生成页面控件列表:
根据UI父对象的父控件ID判断UI子对象中是否有对应的子控件ID。
若无,则删除对应的父控件。并合并UI子对象的页面控件列表至UI父对象的页面脚本列表;若UI子对象的子控件ID与UI父对象的页面控件列表中的父控件ID相同,则使用UI子对象的页面脚本列表中的子控件ID对应的控件属性及事件响应脚本覆盖UI父对象的页面脚本列表中的对应的父控件ID对应的控件属性及事件响应脚本。
参见图6,为本发明资源引用列表的获取方法,具体包括:
S61、判断所述UI子对象是否有UI父对象。
具体的,可以通过与实施例4、5相同的方式进行判断。
S62、若有,获取所述UI父对象的资源引用列表。
S63、获取所述UI子对象的资源引用列表。
S64、合并所述UI子对象的资源引用列表至所述UI父对象的资源引用列表;若所述UI子对象的资源引用列表中的资源引用与所述UI父对象的资源引用列表中的资源引用相同,则忽略所述资源引用。
根据本发明的继承方法,在UI子对象中只保存有添加的资源引用。因此,需要将UI父对象中的资源引用信息与UI子对象中的资源引用信息合并,才能获得UI子对象的全部资源引用信息。
需要说明的是,若UI子对象中的资源引用于UI父对象中的资源引用相同,那么可忽略UI子对象中的资源引用信息。
本发明还提供了一种装置,参见图7,该装置包括:
11、获取单元,用于获取通用UI父页面。
12、描述单元,用于以面向对象的方式描述UI父页面,获得UI父对象。
具体的,该描述单元可以采用XML语言描述该UI父页面。
13、继承单元,用于继承所述UI父对象,生成UI子对象。
在本发明的实施例中,继承单元11包括:
第一继承子单元,用于复制所述UI父对象的所有控件ID至所述UI子对象。
根据最后生成的UI子对象的具体内容,继承单元还包括以下任意一个或几个单元:
第二继承子单元,用于保存所述UI父对象需要修改的所述控件ID对应的控件属性和/或事件响应脚本至所述UI子对象。
第三继承子单元,用于保存所述UI父对象需要修改的页面脚本至所述UI子对象。
第四继承子单元,用于保存所述UI父对象需要增加的引用资源至所述UI子对象。
第五继承子单元,用于保存所述UI父对象需要增加的控件ID、所述控件ID对应控件的控件属性和事件响应脚本至所述UI子对象。
第六继承子单元,用于在所述UI子对象中删除所述UI父对象需要删除的控件ID。
14、转换单元,用于转换所述UI子对象为UI子页面。
UI子对象和父对象中包括控件信息、脚本信息以及资源引用等信息,其中控件信息中还包含事件脚本信息。为方便系统进行转换,可在转换时将脚本信息区分出来。同时根据继承的规则,生成的UI子对象中只包含与UI父对象不同的信息。因此,在上述语言转换之前,需要首先将结合UI父对象的信息和UI子对象中修改的信息获得UI子对象实际包含的全部信息。为此,本发明中的转换单元14具体包括:
解析单元,其中解析单元又包括第一解析单元、第二解析单元和第三解析单元,分别用于解析UI父对象和UI子对象,以获得页面脚本列表、页面控件列表和资源引用列表。
第一提取单元,用于提取页面控件列表中的事件脚本,合并所述事件脚本和页面脚本列表生成脚本文件。
第二提取单元,用于提取页面控件列表中的页面控件;合并页面控件和资源引用列表为页面文件。
最后通过第一转换子单元,将脚本文件和页面文件转换为UI子页面。
对应本发明实施例中的继承方法,第一解析单元包括:
第一判断单元,用于判断UI子对象是否有UI父对象。
第一获取单元,用于在判断UI子对象有UI父对象时获取UI父对象的页面脚本列表和UI子对象的页面脚本列表。
第一合并单元,用于合并UI子对象的页面脚本列表至UI父对象的页面脚本列表;若UI子对象的页面脚本列表中的公共变量或公共方法与UI父对象的页面脚本列表中的公共变量或公共方法相同,则使用UI子对象的页面脚本列表中的公共变量或公共方法的值覆盖UI父对象的页面脚本列表中的对应公共变量或公共方法的值。
对应本发明的继承方法,本发明中的第二解析单元包括:
第二获取单元,用于获取UI子对象的页面控件列表。
第二判断单元,用于判断UI子对象是否有UI父对象。
第三判断单元,用于在UI子对象有UI父对象时,根据UI子对象的页面控件列表中的子控件判断UI父对象中是否有对应的父控件。
第二合并单元,用于在判断UI父对象中有对应的父控件时,将父控件具有而所述子控件不具有的属性和事件响应脚本合并到子控件。
对应本发明的继承方法,本发明中的第三解析单元包括:
第四判断单元,用于判断UI子对象是否有UI父对象。
第三获取单元,用于在UI子对象有UI父对象时,获取UI父对象的资源引用列表和UI子对象的资源引用列表。
第三合并单元,用于合并UI子对象的资源引用列表至UI父对象的资源引用列表;若UI子对象的资源引用列表中的资源引用与UI父对象的资源引用列表中的资源引用相同,则忽略UI子对象中的资源引用。
值得注意的是,本发明的装置与本发明的方法相对应,因此对装置部分不再详述,相关部分参见方法实施例即可。
以上对本发明所提供的一种UI复用方法及装置进行了介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种UI复用方法,其特征在于,所述方法包括:
获取通用UI父页面;
以面向对象的方式描述UI父页面,具体的,使用结构化良好的XML语言描述UI父页面,获得UI父对象,所述UI父对象同一类的内容被封装在同一个标签内;
继承所述UI父对象,生成UI子对象,所述UI子对象保存不同于UI父对象的内容;
转换所述UI子对象为UI子页面;
所述继承所述UI父对象,生成UI子对象包括以下任意一项或几项:
保存所述UI父对象需要修改的控件ID对应的控件属性和/或事件响应脚本至所述UI子对象;
保存所述UI父对象需要修改的页面脚本至所述UI子对象;
保存所述UI父对象需要增加的引用资源至所述UI子对象;
保存所述UI父对象需要增加的控件ID、所述控件ID对应控件的控件属性和事件响应脚本至所述UI子对象;
在所述UI子对象中删除所述UI父对象需要删除的控件ID。
2.根据权利要求1所述的方法,其特征在于,所述转换所述UI子对象为UI子页面包括:
解析所述UI父对象和所述UI子对象,获得页面脚本列表,页面控件列表和资源引用列表;
提取所述页面控件列表中的事件脚本;合并所述事件脚本和所述页面脚本列表生成脚本文件;
提取所述页面控件列表中的页面控件;合并所述页面控件和所述资源引用列表为页面文件;
转换所述脚本文件和所述页面文件为UI子页面。
3.根据权利要求2所述的方法,其特征在于,所述解析所述UI父对象和所述UI子对象,获得页面脚本列表包括:
判断所述UI子对象是否有UI父对象;
若有,获取所述UI父对象的页面脚本列表;
获取所述UI子对象的页面脚本列表;
合并所述UI子对象的页面脚本列表至所述UI父对象的页面脚本列表;若所述UI子对象的页面脚本列表中的公共变量或公共方法与所述UI父对象的页面脚本列表中的公共变量或公共方法相同,则使用所述UI子对象的页面脚本列表中的公共变量或公共方法的值覆盖所述UI父对象的所述页面脚本列表中的对应公共变量或公共方法的值。
4.根据权利要求2所述的方法,其特征在于,所述解析所述UI父对象和所述UI子对象,获得页面控件列表为:
获取所述UI子对象的页面控件列表;
判断所述UI子对象是否有UI父对象;
若有,根据所述UI子对象的页面控件列表中的子控件判断所述UI父对象中是否有对应的父控件ID;
若有,则将所述父控件具有而所述子控件不具有的属性和事件响应脚本复制到所述子控件。
5.根据权利要求2所述的方法,其特征在于,所述解析所述UI父对象和所述UI子对象,获得资源引用列表为:
判断所述UI子对象是否有UI父对象;
若有,获取所述UI父对象的资源引用列表;
获取所述UI子对象的资源引用列表;
合并所述UI子对象的资源引用列表至所述UI父对象的资源引用列表;若所述UI子对象的资源引用列表中的资源引用与所述UI父对象的资源引用列表中的资源引用相同,则忽略所述资源引用。
6.一种UI复用装置,其特征在于,所述装置包括:
获取单元,用于获取通用UI父页面;
描述单元,用于以面向对象的方式描述UI父页面,具体的,使用结构化良好的XML语言描述UI父页面,获得UI父对象,所述父UI对象同一类的内容被封装在同一个标签内;
继承单元,用于继承所述UI父对象,生成UI子对象,所述UI子对象保存不同于UI父对象的内容;
转换单元,用于转换所述UI子对象为UI子页面;
所述继承单元包括以下任意一个或几个单元:
第二继承子单元,用于保存所述UI父对象需要修改的控件ID对应的控件属性和/或事件响应脚本至所述UI子对象;
第三继承子单元,用于保存所述UI父对象需要修改的页面脚本至所述UI子对象;
第四继承子单元,用于保存所述UI父对象需要增加的引用资源至所述UI子对象;
第五继承子单元,用于保存所述UI父对象需要增加的控件ID、所述控件ID对应控件的控件属性和事件响应脚本至所述UI子对象;
第六继承子单元,用于在所述UI子对象中删除所述UI父对象需要删除的控件ID。
7.根据权利要求6所述的装置,其特征在于,所述转换单元包括:
解析单元,所述解析单元包括第一解析单元、第二解析单元和第三解析单元,分别用于解析所述UI父对象和所述UI子对象,获得页面脚本列表、页面控件列表和资源引用列表;
第一提取单元,用于提取所述页面控件列表中的事件脚本,合并所述事件脚本和所述页面脚本列表生成脚本文件;
第二提取单元,用于提取所述页面控件列表中的页面控件;合并所述页面控件和所述资源引用列表为页面文件;
第一转换子单元,用于转换所述脚本文件和所述页面文件为UI子页面。
8.根据权利要求7所述的装置,其特征在于,所述第一解析单元包括:
第一判断单元,用于判断所述UI子对象是否有UI父对象;
第一获取单元,用于在判断所述UI子对象有UI父对象时获取所述UI父对象的页面脚本列表和所述UI子对象的页面脚本列表;
第一合并单元,用于合并所述UI子对象的页面脚本列表至所述UI父对象的页面脚本列表;若所述UI子对象的页面脚本列表中的公共变量或公共方法与所述UI父对象的页面脚本列表中的公共变量或公共方法相同,则使用所述UI子对象的页面脚本列表中的公共变量或公共方法的值覆盖所述UI父对象的所述页面脚本列表中的对应公共变量或公共方法的值。
9.根据权利要求7所述的装置,其特征在于,所述第二解析单元包括:
第二获取单元,用于获取所述UI子对象的页面控件列表;
第二判断单元,用于判断所述UI子对象是否有UI父对象;
第三判断单元,用于在所述UI子对象有UI父对象时,根据所述UI子对象的页面控件列表中的子控件判断所述UI父对象中是否有对应的父控件;
第二合并单元,用于在判断所述UI父对象中有对应的父控件时,将所述父控件具有而所述子控件不具有的属性和事件响应脚本合并到所述子控件。
10.根据权利要求7所述的装置,其特征在于,所述第三解析单元包括:
第四判断单元,用于判断所述UI子对象是否有UI父对象;
第三获取单元,用于在所述UI子对象有UI父对象时,获取所述UI父对象的资源引用列表和所述UI子对象的资源引用列表;
第三合并单元,用于合并所述UI子对象的资源引用列表至所述UI父对象的资源引用列表;若所述UI子对象的资源引用列表中的资源引用与所述UI父对象的资源引用列表中的资源引用相同,则忽略所述资源引用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110460269.4A CN102541564B (zh) | 2011-12-31 | 2011-12-31 | 一种ui复用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110460269.4A CN102541564B (zh) | 2011-12-31 | 2011-12-31 | 一种ui复用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541564A CN102541564A (zh) | 2012-07-04 |
CN102541564B true CN102541564B (zh) | 2015-09-23 |
Family
ID=46348537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110460269.4A Expired - Fee Related CN102541564B (zh) | 2011-12-31 | 2011-12-31 | 一种ui复用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541564B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104933019B (zh) * | 2015-06-05 | 2019-05-10 | 亚信科技(南京)有限公司 | 一种列表生成的方法及装置 |
CN110543309A (zh) * | 2019-09-06 | 2019-12-06 | 北京智友信诚科技有限公司 | 一种页面开发方法及系统 |
CN113780903B (zh) * | 2021-11-12 | 2022-02-25 | 中国信息通信研究院 | 资产对象管理方法、装置、电子设备和计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303691A (zh) * | 2007-05-08 | 2008-11-12 | 唐凯 | 多网页间的组织与显示的方法 |
CN101676910A (zh) * | 2008-09-19 | 2010-03-24 | 北京大学 | 一种面向Web应用系统的页面生成方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609470B (zh) * | 2009-07-02 | 2011-08-10 | 腾讯科技(深圳)有限公司 | 一种多页面浏览器防假死方法及装置 |
CN102200914B (zh) * | 2011-06-24 | 2013-11-27 | 北京神州泰岳软件股份有限公司 | 在移动终端上实现用户界面的方法和设备 |
-
2011
- 2011-12-31 CN CN201110460269.4A patent/CN102541564B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303691A (zh) * | 2007-05-08 | 2008-11-12 | 唐凯 | 多网页间的组织与显示的方法 |
CN101676910A (zh) * | 2008-09-19 | 2010-03-24 | 北京大学 | 一种面向Web应用系统的页面生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102541564A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10108535B2 (en) | Web application test script generation to test software functionality | |
US7917815B2 (en) | Multi-layer context parsing and incident model construction for software support | |
US10185546B2 (en) | Service extraction and application composition | |
US20080301648A1 (en) | Model oriented debugging | |
CN105683924A (zh) | 通过从在本机模式中执行转变为在经解释的模式中执行来调试本机代码 | |
CN109117164B (zh) | 基于关键元素差异性分析的微服务更新方法及系统 | |
CN102446099A (zh) | 工作软件中的用户界面实体模型的反向工程 | |
CN103383645A (zh) | 代码生成方法及系统 | |
CN102662825B (zh) | 一种面向堆操作程序的内存泄漏检测方法 | |
CN104572085A (zh) | 应用程序的分析方法及装置 | |
US20210056006A1 (en) | Automated searching and identification of software patches | |
CN103488674A (zh) | 计算系统和计算系统的执行控制方法 | |
Mushtaq et al. | Multilingual source code analysis: State of the art and challenges | |
CN105630563A (zh) | 基于xml的继电保护装置规约的动态模型配置方法 | |
CN102541564B (zh) | 一种ui复用方法及装置 | |
CN111309317A (zh) | 一种实现数据可视化的代码自动化方法和装置 | |
CN104317580A (zh) | 虚拟试验应用集成开发环境 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN115469849B (zh) | 一种业务处理系统、方法、电子设备和存储介质 | |
De Silva et al. | Analysis and enhancements of a cognitive based complexity measure | |
CN105335160A (zh) | 一种基于jsf的web端组件敏捷开发方法 | |
CN115964042A (zh) | 菜单的生成方法及装置、存储介质、电子设备 | |
CN110058849A (zh) | 流程图的生成方法、装置、计算机设备以及存储介质 | |
CN102262527B (zh) | 生成网络服务的方法和系统 | |
CN107451167A (zh) | 站内点击位的点击数据获取方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150923 Termination date: 20191231 |
|
CF01 | Termination of patent right due to non-payment of annual fee |