專利名稱:一種ui復(fù)用方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及WEB應(yīng)用程序開發(fā)領(lǐng)域,尤其是涉及一種n復(fù)用方法及裝置。
背景技術(shù):
UI (用戶界面)開發(fā)是基于B/S架構(gòu)的WEB應(yīng)用程序的開發(fā)中的重要環(huán)節(jié),通常會(huì)消耗整個(gè)開發(fā)程序70%以上的工作量。如何有效的縮減n開發(fā)的工作量,是提高B/S架構(gòu)的WEB應(yīng)用程序的開發(fā)效率的重中之重。本領(lǐng)域的人員可以知道,在n的開發(fā)過程中,很多n的內(nèi)容是重復(fù)的,為此,在n 的開發(fā)過程中經(jīng)常使用Ui復(fù)用的方法來縮減n的開發(fā)工作量。開發(fā)團(tuán)隊(duì)在長(zhǎng)期項(xiàng)目的開發(fā)過程中會(huì)積累一批設(shè)計(jì)良好、有一定通用性的n頁面作為通用Ui。n復(fù)用的具體過程是確定通用ui。在開發(fā)新的n時(shí),分析用戶需求,確定具體的通用ui。通常是確定于用戶需求的UI頁面最類似的通用UI。通過采用從通用UI中拷貝并粘貼的方法建立新的UI,并根據(jù)需要對(duì)其進(jìn)行修改, 直到符合用戶需求。這種方式,是目前提高B/S架構(gòu)n開發(fā)效率最直接、最有效的方法。但現(xiàn)有的方式中,B/S架構(gòu)下的n使用的是結(jié)構(gòu)化并不良好的HTML語言描述頁面。由于HTML的結(jié)構(gòu)化不好,不具有封裝性,在復(fù)用時(shí)很難區(qū)分出修改和不需要修改的內(nèi)容。通過整段代碼拷貝粘貼后進(jìn)行修改,會(huì)影響到本不需要修改的地方,使得局部修改變成一個(gè)整體修改的過程。整體修改意味著整體測(cè)試,因此這樣的方式加大了工作量,降低了 n 的開發(fā)效率。另外,由于HTML的混亂結(jié)構(gòu),使得用戶在其代碼中查找某個(gè)特定的控件十分困難,極易出錯(cuò),降低了 n復(fù)用的準(zhǔn)確度。發(fā)明內(nèi)容
本發(fā)明提供一種n復(fù)用方法及裝置,能夠縮減n復(fù)用的工作量,提高n開發(fā)的效率。
本發(fā)明提供了一種UI復(fù)用方法,所述方法包括
獲取通用UI父頁面;
以面向?qū)ο蟮姆绞矫枋鯱I父頁面,獲得UI父對(duì)象;
繼承所述UI父對(duì)象,生成UI子對(duì)象;
轉(zhuǎn)換所述UI子對(duì)象為UI子頁面。
優(yōu)選的,所述繼承所述UI父對(duì)象,生成UI子對(duì)象包括
復(fù)制所述UI父對(duì)象的所有控件ID至所述UI子對(duì)象。
優(yōu)選的,所述繼承所述n父對(duì)象,生成n子對(duì)象還包括以下任意一項(xiàng)或幾項(xiàng)
保存所述n父對(duì)象需要修改的所述控件id對(duì)應(yīng)的控件屬性和/或事件響應(yīng)腳本CN 102541564 A
至所述n子對(duì)象;
保存所述n父對(duì)象需要修改的頁面腳本至所述n子對(duì)象;
保存所述n父對(duì)象需要增加的引用資源至所述n子對(duì)象;
保存所述UI父對(duì)象需要增加的控件ID、所述控件ID對(duì)應(yīng)控件的控件屬性和事件響應(yīng)腳本至所述UI子對(duì)象;
在所述n子對(duì)象中刪除所述n父對(duì)象需要?jiǎng)h除的控件id。
優(yōu)選的,所述轉(zhuǎn)換所述n子對(duì)象為ui子頁面包括
解析所述n父對(duì)象和所述n子對(duì)象,獲得頁面腳本列表,頁面控件列表和資源引用列表;
提取所述頁面控件列表中的事件腳本;合并所述事件腳本和所述頁面腳本列表生成腳本文件;
提取所述頁面控件列表中的頁面控件;合并所述頁面控件和所述資源引用列表為頁面文件;
轉(zhuǎn)換所述腳本文件和所述頁面文件為n子頁面。
優(yōu)選的,所述解析所述UI父對(duì)象和所述UI子對(duì)象,獲得頁面腳本列表包括
判斷所述UI子對(duì)象是否有UI父對(duì)象;
若有,獲取所述UI父對(duì)象的頁面腳本列表;
獲取所述n子對(duì)象的頁面腳本列表;
合并所述n子對(duì)象的頁面腳本列表至所述n父對(duì)象的頁面腳本列表;若所述n
子對(duì)象的頁面腳本列表中的公共變量或公共方法與所述UI父對(duì)象的頁面腳本列表中的公共變量或公共方法相同,則使用所述n子對(duì)象的頁面腳本列表中的公共變量或公共方法的值覆蓋所述n父對(duì)象的所述頁面腳本列表中的對(duì)應(yīng)公共變量或公共方法的值。優(yōu)選的,所述解析所述UI父對(duì)象和所述UI子對(duì)象,獲得頁面控件列表為獲取所述n子對(duì)象的頁面控件列表;判斷所述UI子對(duì)象是否有UI父對(duì)象;若有,根據(jù)所述n子對(duì)象的頁面控件列表中的子控件判斷所述n父對(duì)象中是否有對(duì)應(yīng)的父控件ID ;若有,則將所述父控件具有而所述子控件不具有的屬性和事件響應(yīng)腳本復(fù)制到所述子控件。優(yōu)選的,所述解析所述n父對(duì)象和所述n子對(duì)象,獲得資源引用列表為判斷所述UI子對(duì)象是否有UI父對(duì)象;若有,獲取所述n父對(duì)象的資源引用列表;獲取所述n子對(duì)象的資源引用列表;合并所述n子對(duì)象的資源引用列表至所述n父對(duì)象的資源引用列表;若所述 UI子對(duì)象的資源引用列表中的資源引用與所述n父對(duì)象的資源引用列表中的資源引用相同,則忽略所述資源引用。本發(fā)明還提供了一種裝置,所述裝置包括獲取單元,用于獲取通用UI父頁面;描述單元,用于以面向?qū)ο蟮姆绞矫枋鰊父頁面,獲得n父對(duì)象;
6
繼承單元,用于繼承所述n父對(duì)象,生成n子對(duì)象;轉(zhuǎn)換單元,用于轉(zhuǎn)換所述n子對(duì)象為UI子頁面。優(yōu)選的,所述繼承單元包括第一繼承子單元,用于復(fù)制所述n父對(duì)象的所有控件ID至所述n子對(duì)象。優(yōu)選的,所述繼承單元還包括以下任意一個(gè)或幾個(gè)單元第二繼承子單元,用于保存所述n父對(duì)象需要修改的所述控件ID對(duì)應(yīng)的控件屬性和/或事件響應(yīng)腳本至所述UI子對(duì)象。第三繼承子單元,用于保存所述n父對(duì)象需要修改的頁面腳本至所述n子對(duì)象。第四繼承子單元,用于保存所述UI父對(duì)象需要增加的引用資源至所述UI子對(duì)象。第五繼承子單元,用于保存所述n父對(duì)象需要增加的控件ID、所述控件ID對(duì)應(yīng)控件的控件屬性和事件響應(yīng)腳本至所述n子對(duì)象。第六繼承子單元,用于在所述n子對(duì)象中刪除所述n父對(duì)象需要?jiǎng)h除的控件ID。優(yōu)選的,所述轉(zhuǎn)換單元包括解析單元,所述解析單元包括第一解析單元、第二解析單元和第三解析單元,分別用于解析所述UI父對(duì)象和所述UI子對(duì)象,獲得頁面腳本列表、頁面控件列表和資源引用列表;第一提取單元,用于提取所述頁面控件列表中的事件腳本,合并所述事件腳本和所述頁面腳本列表生成腳本文件;第二提取單元,用于提取所述頁面控件列表中的頁面控件;合并所述頁面控件和所述資源引用列表為頁面文件;第一轉(zhuǎn)換子單元,用于轉(zhuǎn)換所述腳本文件和所述頁面文件為UI子頁面。優(yōu)選的,所述第一解析單元包括第一判斷單元,用于判斷所述UI子對(duì)象是否有UI父對(duì)象;第一獲取單元,用于在判斷所述n子對(duì)象有n父對(duì)象時(shí)獲取所述n父對(duì)象的頁面腳本列表和所述n子對(duì)象的頁面腳本列表;第一合并單元,用于合并所述n子對(duì)象的頁面腳本列表至所述n父對(duì)象的頁面腳本列表;若所述UI子對(duì)象的頁面腳本列表中的公共變量或公共方法與所述UI父對(duì)象的頁面腳本列表中的公共變量或公共方法相同,則使用所述n子對(duì)象的頁面腳本列表中的公共變量或公共方法的值覆蓋所述UI父對(duì)象的所述頁面腳本列表中的對(duì)應(yīng)公共變量或公共方法的值。優(yōu)選的,所述第二解析單元包括第二獲取單元,用于獲取所述n子對(duì)象的頁面控件列表;第二判斷單元,用于判斷所述UI子對(duì)象是否有UI父對(duì)象;第三判斷單元,用于在所述UI子對(duì)象有UI父對(duì)象時(shí),根據(jù)所述UI子對(duì)象的頁面控件列表中的子控件判斷所述n父對(duì)象中是否有對(duì)應(yīng)的父控件;第二合并單元,用于在判斷所述n父對(duì)象中有對(duì)應(yīng)的父控件時(shí),將所述父控件具有而所述子控件不具有的屬性和事件響應(yīng)腳本合并到所述子控件。優(yōu)選的,所述第三解析單元包括第四判斷單元,用于判斷所述n子對(duì)象是否有n父對(duì)象;
第三獲取單元,用于在所述n子對(duì)象有n父對(duì)象時(shí),獲取所述n父對(duì)象的資源引用列表和所述n子對(duì)象的資源引用列表;第三合并單元,用于合并所述n子對(duì)象的資源引用列表至所述n父對(duì)象的資源引用列表;若所述n子對(duì)象的資源引用列表中的資源引用與所述n父對(duì)象的資源引用列表中的資源引用相同,則忽略所述資源引用。與現(xiàn)有技術(shù)相比,本發(fā)明有如下有益效果本發(fā)明中,通過以面向?qū)ο蟮姆绞矫枋鰊父頁面,獲得的n父對(duì)象具有良好的封裝性,能夠很容易的確定n父對(duì)象要修改的內(nèi)容。而且本發(fā)明利用面向?qū)ο笾械睦^承特性,在復(fù)用時(shí),只需在n子對(duì)象中保存修改的內(nèi)容,這樣的方式使得在進(jìn)行之后的測(cè)試時(shí), 只需對(duì)n子對(duì)象中的內(nèi)容進(jìn)行測(cè)試即可。相對(duì)現(xiàn)有技術(shù),縮減了大量工作量,很大程度上提高了 n開發(fā)的效率。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲
得其他的附圖。
圖I是本發(fā)明方法實(shí)施例I流程圖2是本發(fā)明實(shí)施例2以面向?qū)ο蠓绞矫枋龅腢I父對(duì)象示意圖
圖3是本發(fā)明方法實(shí)施例3流程圖4是本發(fā)明方法實(shí)施例4流程圖5是本發(fā)明方法實(shí)施例5流程圖6是本發(fā)明方法實(shí)施例6流程圖7是本發(fā)明裝置實(shí)施例7結(jié)構(gòu)圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參見圖1,本發(fā)明實(shí)施例I提供了一種UI復(fù)用方法,所述方法包括如下步驟S11、獲取通用UI父頁面。通用n父頁面是指為了提高n復(fù)用度,開發(fā)團(tuán)隊(duì)在長(zhǎng)期項(xiàng)目開發(fā)過程中積累的一批設(shè)計(jì)良好、具有一定通用性的n父頁面。在開發(fā)具體項(xiàng)目時(shí),可以通過分析用戶n需求,選擇復(fù)用的通用n父頁面。比如,當(dāng)要開發(fā)的頁面是一個(gè)關(guān)于體育彩票的頁面時(shí),通常會(huì)選用跟體育彩票相關(guān)的通用UI頁面。S12、以面向?qū)ο蟮姆绞矫枋鰊父頁面,獲得n父對(duì)象。面向?qū)ο?Object Oriented, 00)是當(dāng)前計(jì)算機(jī)界關(guān)心的重點(diǎn),它是90年代軟件開發(fā)方法的主流?,F(xiàn)在面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到很寬的范圍。如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD 技術(shù)、人工智能等領(lǐng)域。其特點(diǎn)具有良好的封裝性,可以將同一類別的內(nèi)容歸類封裝起來。 因此,可以使用面向?qū)ο蟮姆椒枋鰊頁面以解決使用HTML語言描述導(dǎo)致頁面結(jié)構(gòu)混亂, 缺乏封裝的問題。具體的可以使用結(jié)構(gòu)化良好的XML語言描述UI頁面。在本發(fā)明的實(shí)施例2中,提供了一種使用XML語言描述n頁面的具體方式。參見圖2,為描述后的n父對(duì)象。其中,〈controls/〉用于存放頁面控件、屬性,事件響應(yīng)腳本?!磗cripts/〉用于存放頁面腳本。〈resources/〉用于存放頁面引用外部資源的信息。與UI無關(guān)的模型元數(shù)據(jù)信息存放在如下標(biāo)簽中〈baseinfo/〉用于存放UI父對(duì)象基本信息,如創(chuàng)建者,創(chuàng)建時(shí)間,修改時(shí)間等?!磀ependences/〉用于存放UI父對(duì)象的依賴信息??梢钥闯?,用XML語言描述后的UI父對(duì)象同一類的內(nèi)容被封裝在了同一標(biāo)簽內(nèi), 結(jié)構(gòu)清楚且易于查找。S13、繼承所述UI父對(duì)象,生成UI子對(duì)象。繼承是在編程中使用的概念,在面向?qū)ο缶幊讨校鏑++和JAVA中都有繼承。具體的它是指一個(gè)對(duì)象直接使用另一對(duì)象的屬性和方法。它是面向?qū)ο蟮脑O(shè)計(jì)方式的特性之一。其中被使用的對(duì)象被稱為父對(duì)象,使用父對(duì)象的對(duì)象為子對(duì)象。繼承的意義在于使用“最少代碼”實(shí)現(xiàn)“最大復(fù)用”。因此在繼承時(shí)只需要將不同于n父對(duì)象的內(nèi)容保存在n子對(duì)象中即可。而不需要將n父對(duì)象的所有內(nèi)容拷貝到n 子對(duì)象中。在本發(fā)明的繼承中,首先需要?jiǎng)?chuàng)建一個(gè)頁面模型,并復(fù)制所述n父對(duì)象的所有控件ID至所述的頁面模型中。該頁面模型實(shí)際就是之后生成的UI子對(duì)象的初始化。接下來就需要根據(jù)要生成的UI子對(duì)象的具體情況進(jìn)行修改。當(dāng)要生成的n子對(duì)象中有控件的控件屬性或事件響應(yīng)腳本與n父對(duì)象中的對(duì)應(yīng)的控件的控件屬性、事件響應(yīng)腳本不同時(shí),需要將該不同的控件屬性、事件響應(yīng)腳本即該n 父對(duì)象需要修改的所述控件對(duì)應(yīng)的控件屬性或事件響應(yīng)腳本保存至所述n子對(duì)象。當(dāng)對(duì)應(yīng)同一控件,其控件屬性和事件響應(yīng)腳本均不同時(shí),就將該不同的控件屬性和事件響應(yīng)腳本保存至ui子對(duì)象的對(duì)應(yīng)控件ID中。當(dāng)要生成的UI子對(duì)象的頁面腳本與UI父對(duì)象的頁面腳本不同時(shí),需要保存該不同的頁面腳本即該UI父對(duì)象需要修改的頁面腳本至UI子對(duì)象中。當(dāng)要生成的UI子對(duì)象中有UI父對(duì)象中沒有的資源引用時(shí),需要保存該UI父對(duì)象需要增加的引用資源至所述W子對(duì)象。當(dāng)要生成的UI子對(duì)象中有UI父對(duì)象沒有的控件時(shí),需要保存該UI父對(duì)象需要增加的控件的id、對(duì)應(yīng)的控件屬性和事件響應(yīng)腳本至n子對(duì)象中。而當(dāng)要生成的UI子對(duì)象中不具有UI父對(duì)象的某些控件時(shí),需要在UI子對(duì)象中刪除該UI父對(duì)象需要?jiǎng)h除的控件ID。因?yàn)閁I父對(duì)象采用面向?qū)ο蟮姆绞矫枋?,在確定要生成的UI子對(duì)象與UI父對(duì)象的不同,即確定n父對(duì)象需要修改的地方時(shí),能夠很容易的從各個(gè)標(biāo)簽中進(jìn)行對(duì)比查找。比如判斷要生成的n子對(duì)象的引用的外部資源是否與n父對(duì)象的完全相同時(shí),以圖2為例,只需要查看〈resources/〉標(biāo)簽中的內(nèi)容即可。而不需要對(duì)n父對(duì)象中的全部代碼進(jìn)行對(duì)比查看。本發(fā)明應(yīng)用了面向?qū)ο蟮睦^承特性,所以在n子對(duì)象中只需要保存修改的內(nèi)容。 在進(jìn)行之后的測(cè)試時(shí),只需要對(duì)n子對(duì)象中的內(nèi)容進(jìn)行測(cè)試即可,相對(duì)現(xiàn)有技術(shù)中,不區(qū)分修改部分和未修改部分而全部測(cè)試的方式,很大程度上減少了測(cè)試的工作量,提高了 UI 開發(fā)的效率。從以上過程可以看出,應(yīng)用面向?qū)ο蟮姆绞矫枋龊蟮膎父對(duì)象進(jìn)行復(fù)用,能夠很快的找出需要需該的地方在繼承時(shí)只需要修改進(jìn)行修改時(shí)生成的n對(duì)象
Com] si4、轉(zhuǎn)換所述n子對(duì)象為n子頁面。復(fù)用的目的最終是要生成UI頁面,因此需要將生成的UI子對(duì)象轉(zhuǎn)換為UI子頁面。具體的是指將UI子對(duì)象由面向?qū)ο蟮恼Z言描述形式轉(zhuǎn)換為HTML的語言描述形式。 tons] n子對(duì)象和父對(duì)象中包括控件信息、腳本信息以及資源引用等信息,其中控件信息中還包含事件腳本信息。為方便系統(tǒng)進(jìn)行轉(zhuǎn)換,可在轉(zhuǎn)換時(shí)將腳本信息區(qū)分出來。同時(shí)根據(jù)繼承的規(guī)則,生成的n子對(duì)象中只包含與n父對(duì)象不同的信息。因此,在上述語言轉(zhuǎn)換之前,首先需要結(jié)合UI父對(duì)象獲得UI子對(duì)象實(shí)際包含的全部信息。在本發(fā)明的實(shí)施例3中,參見圖3,為轉(zhuǎn)換n子對(duì)象轉(zhuǎn)換為n子頁面的具體方法, 包括S31、解析n父對(duì)象和UI子對(duì)象,獲得頁面腳本列表,頁面控件列表和資源引用列表。該步驟實(shí)際是將n子對(duì)象引用的n父對(duì)象中的內(nèi)容和n子對(duì)象修改的內(nèi)容結(jié)合在一起的過程。得到的為n子對(duì)象的實(shí)際信息。對(duì)象中的信息一般包括頁面腳本信息、頁面控件信息和資源引用信息。因此,可解析n父對(duì)象和n子對(duì)象,分別獲取頁面腳本列表,頁面控件列表和資源引用列表。S32、提取頁面控件列表中的事件腳本;合并事件腳本和頁面腳本列表生成腳本文件。S33、提取頁面控件列表中的頁面控件;合并頁面控件和資源引用列表為頁面文件。頁面控件列表既包含事件腳本,又包含頁面控件信息,為方便后續(xù)轉(zhuǎn)換UI子對(duì)象為n子頁面,可將頁面控件中的事件腳本信息和頁面控件信息分別提取出來。并將事件腳本信息與頁面腳本信息合并生成腳本文件,將頁面控件信息與資源引用信息合并生成頁面文件。S34、轉(zhuǎn)換腳本文件和頁面文件為n子頁面。具體的,使用HTML語言分別描述腳本文件和頁面文件,將其轉(zhuǎn)換為UI頁面。對(duì)應(yīng)本發(fā)明的繼承方式,本發(fā)明實(shí)施例4、5、6分別提供了一種獲得頁面腳本列表、頁面控件列表和資源引用列表的方法。其中圖4為頁面腳本列表的獲取方法,具體包括S41、判斷所述n子對(duì)象是否有n父對(duì)象。在繼承n父對(duì)象生成n子對(duì)象時(shí),會(huì)在n子對(duì)象中保存有n父對(duì)象的屬性信息,便于n子對(duì)象能夠引用n父對(duì)象中的信息。因此,具體的可以通過查看n子對(duì)象中是否有此類屬性信息來確認(rèn)是否有n父對(duì)象。進(jìn)一步的,還可以根據(jù)這些屬性信息在數(shù)據(jù)庫中查找是否有對(duì)應(yīng)的n父對(duì)象。S42、若有,獲取所述n父對(duì)象的頁面腳本列表。具體的,可通過UI子對(duì)象中保存的UI父對(duì)象的屬性信息查找到對(duì)應(yīng)的UI父對(duì)象,從而獲取UI父對(duì)象的頁面腳本列表。S43、獲取所述n子對(duì)象的頁面腳本列表。其中保存有UI子對(duì)象不同于UI父對(duì)象的頁面腳本信息。S44、合并所述n子對(duì)象的頁面腳本列表至所述n父對(duì)象的頁面腳本列表;若所述UI子對(duì)象的頁面腳本列表中的公共變量或公共方法與所述UI父對(duì)象的頁面腳本列表中的公共變量或公共方法相同,則使用所述n子對(duì)象的頁面腳本列表中的公共變量或公共方法的值覆蓋所述UI父對(duì)象的所述頁面腳本列表中的對(duì)應(yīng)公共變量或公共方法的值。根據(jù)本發(fā)明的繼承方法,只有在n子對(duì)象的頁面腳本中的公共變量或公共方法的值不同于n父對(duì)象中對(duì)應(yīng)的公共變量或公共方法的值時(shí),才會(huì)在n子對(duì)象中保存該公共變量或公共方法及對(duì)應(yīng)的值。因此,通過獲取ui父對(duì)象的頁面腳本信息并用UI子對(duì)象中修改后的值覆蓋n父對(duì)象中對(duì)應(yīng)公共變量或公共方法的值,就使得生成的頁面腳本列表中全部為符合ui子對(duì)象的頁面腳本信息。參見圖5,為本發(fā)明頁面控件列表的獲取方法,具體包括S51、獲取n子對(duì)象的頁面控件列表。根據(jù)本發(fā)明的繼承方法,UI子對(duì)象的頁面控件列表中應(yīng)當(dāng)包含UI父對(duì)象的所有控件ID、修改的控件屬性及事件響應(yīng)腳本和添加的控件ID以及與該ID對(duì)應(yīng)的控件屬性和事件響應(yīng)腳本。S52、判斷UI子對(duì)象是否有UI父對(duì)象。同實(shí)施例4 一樣,可以通過n子對(duì)象中保存的UI父對(duì)象的屬性信息來確認(rèn)是否有n父對(duì)象。S53、若有,根據(jù)所述n子對(duì)象的頁面控件列表中的子控件ID判斷所述n父對(duì)象中是否有對(duì)應(yīng)的父控件ID。
子控件和父控件是指分別保存在n子對(duì)象和n父對(duì)象中的同一控件ID對(duì)應(yīng)的控件。因?yàn)樵趎子對(duì)象中保存的控件id可能是添加的,也可能是從n父對(duì)象中直接復(fù)制的,復(fù)制過來后修改的,所以需要首先判斷該控件是否是從n父對(duì)象中復(fù)制過來的。S54、若有,則將所述父控件具有而所述子控件不具有的屬性和事件響應(yīng)腳本復(fù)制到所述子控件。這樣,子控件就從n父對(duì)象中獲取了引用的控件屬性和事件響應(yīng)腳本。并與添加的控件ID及對(duì)應(yīng)的屬性、事件響應(yīng)腳本和修改的控件信息一起組合為UI子對(duì)象控件信息。在本發(fā)明的另一實(shí)施例中,可以在步驟S52之后采用如下方式生成頁面控件列表根據(jù)n父對(duì)象的父控件ID判斷n子對(duì)象中是否有對(duì)應(yīng)的子控件ID。若無,則刪除對(duì)應(yīng)的父控件。并合并n子對(duì)象的頁面控件列表至n父對(duì)象的頁面腳本列表;若UI子對(duì)象的子控件ID與UI父對(duì)象的頁面控件列表中的父控件ID相同,則使用n子對(duì)象的頁面腳本列表中的子控件ID對(duì)應(yīng)的控件屬性及事件響應(yīng)腳本覆蓋n父對(duì)象的頁面腳本列表中的對(duì)應(yīng)的父控件ID對(duì)應(yīng)的控件屬性及事件響應(yīng)腳本。參見圖6,為本發(fā)明資源引用列表的獲取方法,具體包括361、判斷所述瓜子對(duì)象是否有n父對(duì)象。具體的,可以通過與實(shí)施例4、5相同的方式進(jìn)行判斷。S62、若有,獲取所述n父對(duì)象的資源引用列表。S63、獲取所述n子對(duì)象的資源引用列表。S64、合并所述n子對(duì)象的資源引用列表至所述n父對(duì)象的資源引用列表;若所述n子對(duì)象的資源引用列表中的資源引用與所述n父對(duì)象的資源引用列表中的資源引用相同,則忽略所述資源引用。根據(jù)本發(fā)明的繼承方法,在n子對(duì)象中只保存有添加的資源引用。因此,需要將 UI父對(duì)象中的資源引用信息與UI子對(duì)象中的資源引用信息合并,才能獲得UI子對(duì)象的全部資源引用信息。需要說明的是,若n子對(duì)象中的資源引用于n父對(duì)象中的資源引用相同,那么可忽略n子對(duì)象中的資源引用信息。本發(fā)明還提供了一種裝置,參見圖7,該裝置包括11、獲取單元,用于獲取通用n父頁面。12、描述單元,用于以面向?qū)ο蟮姆绞矫枋鰊父頁面,獲得n父對(duì)象。具體的,該描述單元可以采用XML語言描述該UI父頁面。13、繼承單元,用于繼承所述UI父對(duì)象,生成UI子對(duì)象。在本發(fā)明的實(shí)施例中,繼承單元11包括第一繼承子單元,用于復(fù)制所述n父對(duì)象的所有控件ID至所述n子對(duì)象。根據(jù)最后生成的n子對(duì)象的具體內(nèi)容,繼承單元還包括以下任意一個(gè)或幾個(gè)單元第二繼承子單元,用于保存所述n父對(duì)象需要修改的所述控件ID對(duì)應(yīng)的控件屬性和/或事件響應(yīng)腳本至所述UI子對(duì)象。第三繼承子單元,用于保存所述UI父對(duì)象需要修改的頁面腳本至所述UI子對(duì)象。第四繼承子單元,用于保存所述UI父對(duì)象需要增加的引用資源至所述UI子對(duì)象。第五繼承子單元,用于保存所述n父對(duì)象需要增加的控件ID、所述控件ID對(duì)應(yīng)控件的控件屬性和事件響應(yīng)腳本至所述n子對(duì)象。第六繼承子單元,用于在所述n子對(duì)象中刪除所述n父對(duì)象需要?jiǎng)h除的控件id。14、轉(zhuǎn)換單元,用于轉(zhuǎn)換所述n子對(duì)象為n子頁面。n子對(duì)象和父對(duì)象中包括控件信息、腳本信息以及資源引用等信息,其中控件信息中還包含事件腳本信息。為方便系統(tǒng)進(jìn)行轉(zhuǎn)換,可在轉(zhuǎn)換時(shí)將腳本信息區(qū)分出來。同時(shí)根據(jù)繼承的規(guī)則,生成的UI子對(duì)象中只包含與UI父對(duì)象不同的信息。因此,在上述語言轉(zhuǎn)換之前,需要首先將結(jié)合n父對(duì)象的信息和n子對(duì)象中修改的信息獲得n子對(duì)象實(shí)際包含的全部信息。為此,本發(fā)明中的轉(zhuǎn)換單元14具體包括解析單元,其中解析單元又包括第一解析單元、第二解析單元和第三解析單元,分別用于解析n父對(duì)象和n子對(duì)象,以獲得頁面腳本列表、頁面控件列表和資源引用列表。第一提取單元,用于提取頁面控件列表中的事件腳本,合并所述事件腳本和頁面腳本列表生成腳本文件。第二提取單元,用于提取頁面控件列表中的頁面控件;合并頁面控件和資源引用列表為頁面文件。最后通過第一轉(zhuǎn)換子單元,將腳本文件和頁面文件轉(zhuǎn)換為UI子頁面。對(duì)應(yīng)本發(fā)明實(shí)施例中的繼承方法,第一解析單元包括第一判斷單元,用于判斷UI子對(duì)象是否有UI父對(duì)象。第一獲取單元,用于在判斷n子對(duì)象有n父對(duì)象時(shí)獲取n父對(duì)象的頁面腳本列表和UI子對(duì)象的頁面腳本列表。第一合并單元,用于合并n子對(duì)象的頁面腳本列表至n父對(duì)象的頁面腳本列表; 若UI子對(duì)象的頁面腳本列表中的公共變量或公共方法與UI父對(duì)象的頁面腳本列表中的公共變量或公共方法相同,則使用UI子對(duì)象的頁面腳本列表中的公共變量或公共方法的值覆蓋UI父對(duì)象的頁面腳本列表中的對(duì)應(yīng)公共變量或公共方法的值。對(duì)應(yīng)本發(fā)明的繼承方法,本發(fā)明中的第二解析單元包括第二獲取單元,用于獲取n子對(duì)象的頁面控件列表。第二判斷單元,用于判斷UI子對(duì)象是否有UI父對(duì)象。第三判斷單元,用于在UI子對(duì)象有UI父對(duì)象時(shí),根據(jù)UI子對(duì)象的頁面控件列表中的子控件判斷UI父對(duì)象中是否有對(duì)應(yīng)的父控件。第二合并單元,用于在判斷n父對(duì)象中有對(duì)應(yīng)的父控件時(shí),將父控件具有而所述子控件不具有的屬性和事件響應(yīng)腳本合并到子控件。對(duì)應(yīng)本發(fā)明的繼承方法,本發(fā)明中的第三解析單元包括第四判斷單元,用于判斷UI子對(duì)象是否有UI父對(duì)象。第三獲取單元,用于在UI子對(duì)象有UI父對(duì)象時(shí),獲取UI父對(duì)象的資源引用列表和n子對(duì)象的資源引用列表。第三合并單元,用于合并n子對(duì)象的資源引用列表至n父對(duì)象的資源引用列表; 若n子對(duì)象的資源引用列表中的資源引用與n父對(duì)象的資源引用列表中的資源引用相同,則忽略n子對(duì)象中的資源引用。值得注意的是,本發(fā)明的裝置與本發(fā)明的方法相對(duì)應(yīng),因此對(duì)裝置部分不再詳述, 相關(guān)部分參見方法實(shí)施例即可。以上對(duì)本發(fā)明所提供的一種n復(fù)用方法及裝置進(jìn)行了介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種n復(fù)用方法,其特征在于,所述方法包括獲取通用UI父頁面;以面向?qū)ο蟮姆绞矫枋鯱I父頁面,獲得UI父對(duì)象;繼承所述UI父對(duì)象,生成UI子對(duì)象;轉(zhuǎn)換所述UI子對(duì)象為UI子頁面。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述繼承所述n父對(duì)象,生成Ui子對(duì)象包括復(fù)制所述UI父對(duì)象的所有控件ID至所述UI子對(duì)象。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述繼承所述UI父對(duì)象,生成UI子對(duì)象還包括以下任意一項(xiàng)或幾項(xiàng)保存所述UI父對(duì)象需要修改的所述控件ID對(duì)應(yīng)的控件屬性和/或事件響應(yīng)腳本至所述UI子對(duì)象;保存所述UI父對(duì)象需要修改的頁面腳本至所述UI子對(duì)象;保存所述n父對(duì)象需要增加的引用資源至所述n子對(duì)象;保存所述Ui父對(duì)象需要增加的控件id、所述控件ID對(duì)應(yīng)控件的控件屬性和事件響應(yīng)腳本至所述UI子對(duì)象;在所述UI子對(duì)象中刪除所述UI父對(duì)象需要?jiǎng)h除的控件ID。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述轉(zhuǎn)換所述n子對(duì)象為UI子頁面包括解析所述n父對(duì)象和所述n子對(duì)象,獲得頁面腳本列表,頁面控件列表和資源引用列表;提取所述頁面控件列表中的事件腳本;合并所述事件腳本和所述頁面腳本列表生成腳本文件;提取所述頁面控件列表中的頁面控件;合并所述頁面控件和所述資源引用列表為頁面文件;轉(zhuǎn)換所述腳本文件和所述頁面文件為UI子頁面。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述解析所述UI父對(duì)象和所述UI子對(duì)象,獲得頁面腳本列表包括判斷所述UI子對(duì)象是否有UI父對(duì)象;若有,獲取所述UI父對(duì)象的頁面腳本列表;獲取所述n子對(duì)象的頁面腳本列表;合并所述n子對(duì)象的頁面腳本列表至所述n父對(duì)象的頁面腳本列表;若所述n子對(duì)象的頁面腳本列表中的公共變量或公共方法與所述Ui父對(duì)象的頁面腳本列表中的公共變量或公共方法相同,則使用所述n子對(duì)象的頁面腳本列表中的公共變量或公共方法的值覆蓋所述n父對(duì)象的所述頁面腳本列表中的對(duì)應(yīng)公共變量或公共方法的值。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述解析所述UI父對(duì)象和所述UI子對(duì)象,獲得頁面控件列表為獲取所述n子對(duì)象的頁面控件列表;判斷所述n子對(duì)象是否有n父對(duì)象;若有,根據(jù)所述UI子對(duì)象的頁面控件列表中的子控件判斷所述UI父對(duì)象中是否有對(duì)應(yīng)的父控件ID ;若有,則將所述父控件具有而所述子控件不具有的屬性和事件響應(yīng)腳本復(fù)制到所述子控件。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述解析所述UI父對(duì)象和所述UI子對(duì)象,獲得資源引用列表為判斷所述UI子對(duì)象是否有UI父對(duì)象;若有,獲取所述UI父對(duì)象的資源引用列表;獲取所述n子對(duì)象的資源引用列表;合并所述n子對(duì)象的資源引用列表至所述n父對(duì)象的資源引用列表;若所述n子對(duì)象的資源引用列表中的資源引用與所述n父對(duì)象的資源引用列表中的資源引用相同,則忽略所述資源引用。
8.一種裝置,其特征在于,所述裝置包括獲取單元,用于獲取通用n父頁面;描述單元,用于以面向?qū)ο蟮姆绞矫枋鰊父頁面,獲得n父對(duì)象;繼承單元,用于繼承所述UI父對(duì)象,生成UI子對(duì)象;轉(zhuǎn)換單元,用于轉(zhuǎn)換所述UI子對(duì)象為UI子頁面。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述繼承單元包括第一繼承子單元,用于復(fù)制所述UI父對(duì)象的所有控件ID至所述UI子對(duì)象。
10.根據(jù)權(quán)利要8所述的裝置,其特征在于,所述繼承單元還包括以下任意一個(gè)或幾個(gè)單元第二繼承子單元,用于保存所述n父對(duì)象需要修改的所述控件id對(duì)應(yīng)的控件屬性和 /或事件響應(yīng)腳本至所述UI子對(duì)象;第三繼承子單元,用于保存所述UI父對(duì)象需要修改的頁面腳本至所述UI子對(duì)象; 第四繼承子單元,用于保存所述n父對(duì)象需要增加的引用資源至所述n子對(duì)象; 第五繼承子單元,用于保存所述n父對(duì)象需要增加的控件id、所述控件id對(duì)應(yīng)控件的控件屬性和事件響應(yīng)腳本至所述n子對(duì)象;第六繼承子單元,用于在所述n子對(duì)象中刪除所述n父對(duì)象需要?jiǎng)h除的控件id。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述轉(zhuǎn)換單元包括解析單元,所述解析單元包括第一解析單元、第二解析單元和第三解析單元,分別用于解析所述n父對(duì)象和所述n子對(duì)象,獲得頁面腳本列表、頁面控件列表和資源引用列表; 第一提取單元,用于提取所述頁面控件列表中的事件腳本,合并所述事件腳本和所述頁面腳本列表生成腳本文件;第二提取單元,用于提取所述頁面控件列表中的頁面控件;合并所述頁面控件和所述資源引用列表為頁面文件;第一轉(zhuǎn)換子單元,用于轉(zhuǎn)換所述腳本文件和所述頁面文件為UI子頁面。
12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一解析單元包括第一判斷單元,用于判斷所述UI子對(duì)象是否有UI父對(duì)象;第一獲取單元,用于在判斷所述n子對(duì)象有n父對(duì)象時(shí)獲取所述n父對(duì)象的頁面腳本列表和所述n子對(duì)象的頁面腳本列表;第一合并單元,用于合并所述UI子對(duì)象的頁面腳本列表至所述UI父對(duì)象的頁面腳本列表;若所述UI子對(duì)象的頁面腳本列表中的公共變量或公共方法與所述UI父對(duì)象的頁面腳本列表中的公共變量或公共方法相同,則使用所述n子對(duì)象的頁面腳本列表中的公共變量或公共方法的值覆蓋所述Ui父對(duì)象的所述頁面腳本列表中的對(duì)應(yīng)公共變量或公共方法的值。
13.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第二解析單元包括第二獲取單元,用于獲取所述n子對(duì)象的頁面控件列表;第二判斷單元,用于判斷所述UI子對(duì)象是否有UI父對(duì)象;第三判斷單元,用于在所述n子對(duì)象有n父對(duì)象時(shí),根據(jù)所述n子對(duì)象的頁面控件列表中的子控件判斷所述Ui父對(duì)象中是否有對(duì)應(yīng)的父控件;第二合并單元,用于在判斷所述UI父對(duì)象中有對(duì)應(yīng)的父控件時(shí),將所述父控件具有而所述子控件不具有的屬性和事件響應(yīng)腳本合并到所述子控件。
14.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第三解析單元包括第四判斷單元,用于判斷所述n子對(duì)象是否有n父對(duì)象;第三獲取單元,用于在所述UI子對(duì)象有UI父對(duì)象時(shí),獲取所述UI父對(duì)象的資源引用列表和所述n子對(duì)象的資源引用列表;第三合并單元,用于合并所述Ui子對(duì)象的資源引用列表至所述UI父對(duì)象的資源引用列表;若所述n子對(duì)象的資源引用列表中的資源引用與所述n父對(duì)象的資源引用列表中的資源引用相同,則忽略所述資源引用。
全文摘要
本發(fā)明公開了一種UI復(fù)用方法,所述方法包括獲取通用UI父頁面;以面向?qū)ο蟮姆绞矫枋鯱I父頁面,獲得UI父對(duì)象;繼承所述UI父對(duì)象,生成UI子對(duì)象;轉(zhuǎn)換所述UI子對(duì)象為UI子頁面。本發(fā)明通過將要復(fù)用的UI父頁面以面向?qū)ο蟮姆绞矫枋觯沟酶笇?duì)象有很好的封裝性,從而在很大程度上減少了UI復(fù)用的工作量。本發(fā)明還提供了一種裝置,所述裝置包括獲取單元,用于獲取通用UI父頁面;描述單元,用于以面向?qū)ο蟮姆绞矫枋鯱I父頁面,獲得UI父對(duì)象;繼承單元,用于繼承所述UI父對(duì)象,生成UI子對(duì)象;轉(zhuǎn)換單元,用于轉(zhuǎn)換所述UI子對(duì)象為UI子頁面。
文檔編號(hào)G06F9/44GK102541564SQ201110460269
公開日2012年7月4日 申請(qǐng)日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者于洋, 張德陽, 張霞 申請(qǐng)人:東軟集團(tuán)股份有限公司