一種窗口界面展現(xiàn)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種窗口界面展現(xiàn)方法及系統(tǒng)。
【背景技術(shù)】
[0002]窗口(windows),也稱視窗,是圖形化用戶界面(GraphicalUser Interface,GUI)的基本組成部分,用于提供用戶與應(yīng)用程序之間的交互接口,用戶可以在窗口中查看信息,或者點(diǎn)擊窗口中的按鈕、菜單等控件,實(shí)現(xiàn)對(duì)應(yīng)用程序的操作。
[0003]在應(yīng)用程序的執(zhí)行過程中,可能需要?jiǎng)?chuàng)建一個(gè)或多個(gè)窗口以實(shí)現(xiàn)相應(yīng)的功能。每個(gè)窗口都由若干不同類型的控件構(gòu)成,而且不同功能的窗口對(duì)應(yīng)不同的控件構(gòu)成方案。根據(jù)現(xiàn)有技術(shù)的實(shí)現(xiàn)方式,每種功能的窗口都對(duì)應(yīng)一個(gè)類,在這個(gè)類中定義了這種窗口所需要的控件類型的集合。當(dāng)應(yīng)用程序需要展現(xiàn)一個(gè)窗口時(shí),該窗口中的所有控件都是作為整體被一次性創(chuàng)建并展現(xiàn)。如果需要展現(xiàn)其他功能的窗口,則需要重新針對(duì)新窗口對(duì)應(yīng)的類來創(chuàng)建新的控件集合并展現(xiàn)。
[0004]然而,在實(shí)際應(yīng)用中,一些窗口之間盡管功能不同,實(shí)際的控件構(gòu)成情況卻大部分相同。應(yīng)用現(xiàn)有技術(shù)的方案,每當(dāng)要展現(xiàn)新的功能窗口時(shí),都需要重新創(chuàng)建一個(gè)完整的窗口類,這必然會(huì)對(duì)程序運(yùn)行效率和系統(tǒng)資源占用產(chǎn)生負(fù)面影響。另外,對(duì)于開發(fā)人員而言,如果只是因?yàn)樯倭靠丶煌_發(fā)多套窗口類,會(huì)導(dǎo)致代碼大量重復(fù),額外增加了開發(fā)和維護(hù)成本。
【發(fā)明內(nèi)容】
[0005]為解決上述技術(shù)問題,本申請(qǐng)實(shí)施例提供一種窗口界面展現(xiàn)方法及系統(tǒng),以提高窗口界面的展現(xiàn)性能,并且降低開發(fā)成本,技術(shù)方案如下:
[0006]本申請(qǐng)實(shí)施例提供一種窗口界面展現(xiàn)方法,該方法包括:
[0007]接收第一窗口創(chuàng)建請(qǐng)求,所述請(qǐng)求中,攜帶待創(chuàng)建的窗口的類型信息以及待加載的數(shù)據(jù)源信息;
[0008]根據(jù)所述類型信息,確定待創(chuàng)建窗口所包含的子區(qū)域;其中,所述子區(qū)域包括公共區(qū)域和特征區(qū)域,所述公共區(qū)域包括:至少兩種不同類型窗口之間的相同部分;所述特征區(qū)域包括:每一特定類型窗口區(qū)別于其他類型窗口的特征部分;
[0009]分別加載待創(chuàng)建的第一窗口各個(gè)子區(qū)域所對(duì)應(yīng)的控件集以及各個(gè)子區(qū)域所對(duì)應(yīng)的數(shù)據(jù)源;
[0010]對(duì)加載結(jié)果進(jìn)行展現(xiàn)。
[0011]本申請(qǐng)實(shí)施例還提供一種窗口界面展現(xiàn)系統(tǒng),該系統(tǒng)包括:
[0012]創(chuàng)建請(qǐng)求接收模塊,用于接收第一窗口創(chuàng)建請(qǐng)求,所述請(qǐng)求中,攜帶待創(chuàng)建的窗口的類型信息以及待加載的數(shù)據(jù)源信息;
[0013]子區(qū)域確定模塊,用于根據(jù)所述類型信息,確定待創(chuàng)建窗口所包含的子區(qū)域;其中,所述子區(qū)域包括公共區(qū)域和特征區(qū)域,所述公共區(qū)域包括:至少兩種不同類型窗口之間的相同部分;所述特征區(qū)域包括:每一特定類型窗口區(qū)別于其他類型窗口的特征部分;
[0014]第一加載模塊,用于分別加載待創(chuàng)建的第一窗口各個(gè)子區(qū)域所對(duì)應(yīng)的控件集以及各個(gè)子區(qū)域所對(duì)應(yīng)的數(shù)據(jù)源;
[0015]展現(xiàn)模塊,用于對(duì)所述第一加載模塊的加載結(jié)果進(jìn)行展現(xiàn)。
[0016]本申請(qǐng)實(shí)施例所提供的技術(shù)方案,將窗口劃分為多個(gè)子區(qū)域,其中定義公共區(qū)域?yàn)?至少兩種不同類型窗口之間的相同部分,也就是說,存在多種類型的窗口,這些類型的窗口使用相同的公共區(qū)域控件集。這樣,從開發(fā)人員的角度來看,對(duì)多種類型的窗口僅需維護(hù)一份公共區(qū)域的代碼,而針對(duì)具體某種類型窗口的開發(fā)和維護(hù)僅需考慮非公共區(qū)域部分,與現(xiàn)有技術(shù)相比,整個(gè)窗口系統(tǒng)的代碼結(jié)構(gòu)更為清晰簡潔,可以有效降低開發(fā)和維護(hù)的成本。
[0017]另外,在需要以切換或替代的形式展現(xiàn)不同類型的窗口時(shí),對(duì)于這些窗口的公共區(qū)域控件集,可以僅加載一次,從而避免重復(fù)加載相同內(nèi)容,提高程序運(yùn)行效率、降低系統(tǒng)資源占用。
【附圖說明】
[0018]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1為本申請(qǐng)實(shí)施例單聊窗口的區(qū)域劃分示意圖;
[0020]圖2為本申請(qǐng)實(shí)施例群聊窗口的區(qū)域劃分示意圖;
[0021]圖3為本申請(qǐng)實(shí)施例窗口界面展現(xiàn)方法的一種流程圖;
[0022]圖4為本申請(qǐng)實(shí)施例窗口界面展現(xiàn)方法的第二種流程圖;
[0023]圖5為本申請(qǐng)實(shí)施例窗口界面展現(xiàn)方法的第二種流程圖;
[0024]圖6為本申請(qǐng)實(shí)施例窗口界面展現(xiàn)方法的第四種流程圖;
[0025]圖7為本申請(qǐng)實(shí)施例窗口界面展現(xiàn)裝置的一種結(jié)構(gòu)示意圖;
[0026]圖8為本申請(qǐng)實(shí)施例窗口界面展現(xiàn)裝置的第二種結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]根據(jù)【背景技術(shù)】部分的說明,在實(shí)際應(yīng)用中,一些窗口之間盡管功能不同,實(shí)際的控件構(gòu)成情況卻大部分相同。本申請(qǐng)方案針對(duì)該特點(diǎn),將多種類型窗口之間的相同部分提取出來,稱為“公共區(qū)域”。從控件的角度來理解,可以將每種類型窗口所需要加載的控件信息分別看作不同的集合,這里的“控件信息”包括控件的類型、布局以及具體的參數(shù)設(shè)置等。公共區(qū)域所對(duì)應(yīng)的控件集則是這些集合的交集,也就是說,不同類型的窗口具有相同的公共區(qū)域控件集。在實(shí)際應(yīng)用中,公共區(qū)域主要負(fù)責(zé)展示窗口業(yè)務(wù)的通用數(shù)據(jù),以及提供通用的基礎(chǔ)業(yè)務(wù)操作接口,一個(gè)公共區(qū)域控件集能夠被多種窗口業(yè)務(wù)所共用。
[0028]與公共區(qū)域?qū)?yīng),本申請(qǐng)方案還定義了窗口中的“特征區(qū)域”,即每一特定類型窗口區(qū)別于其他類型窗口的特征部分;特征區(qū)域也有對(duì)應(yīng)的控件集,而且不同類型的窗口分別具有各自的特征區(qū)域控件集。在實(shí)際應(yīng)用中,特征區(qū)域主要負(fù)責(zé)展示窗口業(yè)務(wù)的特性數(shù)據(jù),以及提供特性業(yè)務(wù)操作接口,每個(gè)特征區(qū)域控件集都對(duì)應(yīng)一種具體的窗口業(yè)務(wù)。
[0029]可以理解的是,本申請(qǐng)實(shí)施例中所述的“不同類型的窗口”,可以是針對(duì)某一個(gè)特定的范圍而言,在實(shí)際應(yīng)用中,一般是指在某個(gè)應(yīng)用程序中,功能上相近、卻又不完全相同的窗口。例如即時(shí)通信軟件中的單聊/群聊窗口、電子郵件客戶端軟件中的收郵件/發(fā)郵件窗口,針對(duì)不同文檔類型的編輯窗口,等等。
[0030]公共區(qū)域和特征區(qū)域窗口的基本組成部分,也就是說,創(chuàng)建一個(gè)窗口時(shí),至少要?jiǎng)?chuàng)建該窗口的這兩種子區(qū)域。除此之外,有些窗口在使用過程中,可能隨時(shí)需要在已展示的窗口基礎(chǔ)上,創(chuàng)建一個(gè)新的區(qū)域,用于提供一些擴(kuò)展功能,例如在聊天窗口上附加一個(gè)搜索界面、在發(fā)郵件窗口上附加一個(gè)聯(lián)系人選擇界面,等等。本發(fā)明實(shí)施例中,將這部分提供擴(kuò)展功能的區(qū)域,稱為“擴(kuò)展區(qū)域”。
[0031]與公共區(qū)域和特征區(qū)域類似,擴(kuò)展區(qū)域也有對(duì)應(yīng)的控件集,在上文所述的特定范圍內(nèi),某個(gè)具體功能對(duì)應(yīng)的擴(kuò)展區(qū)域控件集可以僅適用于一種類型的窗口,也可以同時(shí)適用于多種類型的窗口。例如,擴(kuò)展區(qū)域“搜索界面”,既可以附加在單聊窗口上,也可以附加在群聊窗口上。擴(kuò)展區(qū)域?qū)τ谝粋€(gè)窗口而言,并不是必須的組成部分。在實(shí)際應(yīng)用中,擴(kuò)展區(qū)域主要負(fù)責(zé)嫁接附屬外部業(yè)務(wù)的界面展示以及提供相應(yīng)的操作接口。
[0032]以即時(shí)通信軟件為例,圖1和圖2分別示出了即時(shí)通信軟件中兩種類型窗口的子區(qū)域劃分示意圖,其中,圖1所示的單聊窗口包括公共區(qū)域10、特征區(qū)域20、擴(kuò)展區(qū)域30 ;圖2所示的群聊窗口包括公共區(qū)域11、特征區(qū)域21、擴(kuò)展區(qū)域31??梢钥闯?,兩種類型窗口的公共區(qū)域控件配置情況是相同的,只是具體需要顯示的數(shù)據(jù)源不同(在此例中主要是指不同的聊天記錄);擴(kuò)展區(qū)域的控件配置情況則不相同,相應(yīng)需要顯示的數(shù)據(jù)源也不同(在此例中主要是指“個(gè)人用戶”和“群”的相關(guān)信息)。另外,兩種類型窗口分別具有擴(kuò)展區(qū)域,如圖1和圖2所示,兩種擴(kuò)展區(qū)域的控件配置情況和需要顯示的數(shù)據(jù)源也完全不同。
[0033]基于以上窗口子區(qū)域劃分機(jī)制,本申請(qǐng)實(shí)施例提供的一種界面展現(xiàn)方法,參見圖3所示,該方法可以包括以下步驟:
[0034]S101,接收窗口創(chuàng)建請(qǐng)求;
[0035]在窗口創(chuàng)建請(qǐng)求中,攜帶待創(chuàng)建的窗口的類型信息以及待加載的數(shù)據(jù)源信息;
[0036]以在即時(shí)通信軟件的運(yùn)行過程中創(chuàng)建單聊窗口為例,用戶執(zhí)行相應(yīng)操作(例如在好友列表中雙擊一位好友的頭像)后,相當(dāng)于向系統(tǒng)發(fā)出了一個(gè)創(chuàng)建窗口的請(qǐng)求,系統(tǒng)通過解析該請(qǐng)求,可以確定當(dāng)前需要?jiǎng)?chuàng)建“單聊”類型的窗口,并且可以進(jìn)一步確定需要加載的數(shù)據(jù)源,例如聊天對(duì)象的ID、昵稱、好友分組信息、簽名、頭像圖片、聊天記錄等等。
[0037]S102,根據(jù)所述類型信息,確定待創(chuàng)建窗口所包含的子區(qū)域;
[0038]根據(jù)本申請(qǐng)方案,公共區(qū)域和特征區(qū)域是一個(gè)窗口的必要組成部分,因此在本步驟中,至少需要確定待創(chuàng)建窗口的公共區(qū)域和特征區(qū)域。
[0