[發(fā)明專利]一種基于事件鏈的用戶界面插件化交互方法在審
| 申請(qǐng)?zhí)枺?/td> | 201310689128.9 | 申請(qǐng)日: | 2013-12-16 |
| 公開(kāi)(公告)號(hào): | CN103645901A | 公開(kāi)(公告)日: | 2014-03-19 |
| 發(fā)明(設(shè)計(jì))人: | 章奕;武劍鋒;王泊;胡漢英;黃寅飛;白碩 | 申請(qǐng)(專利權(quán))人: | 上海證券交易所 |
| 主分類號(hào): | G06F9/44 | 分類號(hào): | G06F9/44 |
| 代理公司: | 上海三方專利事務(wù)所 31127 | 代理人: | 吳干權(quán);李美立 |
| 地址: | 200120 上*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 事件 用戶界面 插件 交互 方法 | ||
[技術(shù)領(lǐng)域]
本發(fā)明涉及應(yīng)用程序的用戶界面開(kāi)發(fā)領(lǐng)域,具體是一種基于事件鏈的用戶界面插件化交互方法。
[背景技術(shù)]
實(shí)現(xiàn)界面層和業(yè)務(wù)層的分離,這是應(yīng)用程序開(kāi)發(fā)者一直以來(lái)的理想。在傳統(tǒng)的開(kāi)發(fā)過(guò)程中混淆了大量用于顯示邏輯的swing代碼和用于業(yè)務(wù)邏輯的代碼,使得界面設(shè)計(jì)與程序開(kāi)發(fā)無(wú)法清晰的分離,導(dǎo)致大量顯示邏輯的swing代碼不能重用,這常常導(dǎo)致開(kāi)發(fā)者不得不在顯示邏輯之間進(jìn)行單調(diào)的復(fù)制—粘貼操作,進(jìn)而導(dǎo)致同一段代碼出現(xiàn)多個(gè)版本,從而使得程序的調(diào)試和設(shè)計(jì)極其錯(cuò)綜復(fù)雜。而通過(guò)設(shè)計(jì)模式中的命令模式將業(yè)務(wù)邏輯代碼從顯示邏輯中剝離出來(lái),也僅是有限地實(shí)現(xiàn)了表現(xiàn)與邏輯的分離,始終沒(méi)有擺脫顯示與業(yè)務(wù)揉和的問(wèn)題。
插件化交互方法是為了解決這一問(wèn)題應(yīng)運(yùn)而生的,軟件開(kāi)發(fā)者通過(guò)公開(kāi)的插件接口規(guī)范,在不修改程序主體(程序運(yùn)行平臺(tái))的情況下對(duì)功能進(jìn)行擴(kuò)展與加,這樣,開(kāi)發(fā)者就可以根據(jù)實(shí)際需求來(lái)分析哪些部分功能由主體完成(即主體插件的基本功能),哪些部分功能由插件完成(即需要擴(kuò)展的插件功能)。
但是插件化交互必須解決一個(gè)問(wèn)題:如何在主程序與插件間正確地互相通信。目前,主要有三種插件間通信方法:通過(guò)包約束條件建立插件之間的關(guān)聯(lián)關(guān)系;擴(kuò)展點(diǎn)機(jī)制實(shí)現(xiàn)插件間通信;使用單例模式實(shí)現(xiàn)插件間信息共享。這三種方法必須顯示建立兩個(gè)插件之間類的關(guān)聯(lián)關(guān)系,其中第二種方法還需要通過(guò)配置文件建立擴(kuò)展和擴(kuò)展點(diǎn)之間的關(guān)系。
[發(fā)明內(nèi)容]
本發(fā)明的目的是為了解決由于應(yīng)用程序開(kāi)發(fā)過(guò)程中界面設(shè)計(jì)與程序開(kāi)發(fā)無(wú)法清晰的分離,從而使得程序的調(diào)試和設(shè)計(jì)錯(cuò)綜復(fù)雜,導(dǎo)致顯示與業(yè)務(wù)揉和的技術(shù)問(wèn)題,實(shí)現(xiàn)界面層和業(yè)務(wù)層的分離,使插件化交互方法過(guò)程中程序與插件間正確地互相通信。
為了實(shí)現(xiàn)上述目的,提供一種基于事件鏈的用戶界面插件化交互方法,在插件的相互通信中,數(shù)據(jù)從第一插件A向第二插件B傳遞,我們將第一插件A作為一個(gè)事件源,第一插件A中用戶的操作作為事件,第二插件B作為事件監(jiān)聽(tīng)者。當(dāng)?shù)诙寮﨎被加載時(shí),第二插件B向第一插件A注冊(cè),注冊(cè)成功之后,一旦第一插件A中有第二插件B感興趣的事件發(fā)生,第一插件A便會(huì)將事件通知給監(jiān)聽(tīng)者第二插件B。
所述的具體方法如下:
A.首先,由于第一插件A都能單獨(dú)作為產(chǎn)品,因而第一插件A判斷是否和第二插件B也存在于環(huán)境中,如果存在,則啟用相應(yīng)的功能,否則,隱藏與第二插件B相關(guān)的功能,插件ID必須是唯一的,能通過(guò)第二插件B的ID來(lái)檢測(cè)B是否存在;
B.其次,在第一插件A中定義事件源對(duì)象、事件、事件監(jiān)聽(tīng)器接口;
(a).定義事件源對(duì)象:事件源對(duì)象提供對(duì)監(jiān)聽(tīng)對(duì)象管理,包括監(jiān)聽(tīng)器對(duì)象的注冊(cè)方法,注銷方法,以及將事件通知給監(jiān)聽(tīng)器,事件源維護(hù)了一個(gè)監(jiān)聽(tīng)者隊(duì)列,所有監(jiān)聽(tīng)者都需要向事件源注冊(cè),加入該隊(duì)列,當(dāng)監(jiān)聽(tīng)者不再監(jiān)聽(tīng)事件時(shí),便向事件源注銷,退出該隊(duì)列;
(b).定義事件:事件對(duì)象包裝了事件相關(guān)的具體信息、作為參數(shù)傳遞給監(jiān)聽(tīng)器,事件對(duì)象的具體信息內(nèi)容用戶可以自己定制,包含事件發(fā)生的時(shí)間,事件源對(duì)象;
(c).定義事件監(jiān)聽(tīng)器接口:事件監(jiān)聽(tīng)器接口,所有事件監(jiān)聽(tīng)者都應(yīng)該實(shí)現(xiàn)該接口,并在具體實(shí)現(xiàn)中提供相應(yīng)的事件處理方法,事件發(fā)生時(shí),事件源便調(diào)用監(jiān)聽(tīng)器接口提供的事件處理方法統(tǒng)一通知監(jiān)聽(tīng)者隊(duì)列中的所有事件監(jiān)聽(tīng)器對(duì)象。
C.最后,在第二插件B中實(shí)現(xiàn)監(jiān)聽(tīng)器對(duì)象,監(jiān)聽(tīng)器對(duì)象必須實(shí)現(xiàn)第一插件A中的事件監(jiān)聽(tīng)接口,提供自身的事件處理方法,并且在第二插件B被加載時(shí),調(diào)用第一插件A中的事件源對(duì)象類中的添加事件監(jiān)聽(tīng)方法,將該監(jiān)聽(tīng)器對(duì)象向第一插件A的事件源注冊(cè)。
一種采用基于事件鏈的用戶界面插件化交互方法的系統(tǒng),包括程序運(yùn)行平臺(tái)和插件兩部分,所述的程序運(yùn)行平臺(tái)包括應(yīng)用程序模塊、通用界面模塊、核心模塊,應(yīng)用程序模塊負(fù)責(zé)具體業(yè)務(wù)邏輯,可任意調(diào)用其他模塊,通用界面模塊負(fù)責(zé)界面,且只依賴核心模塊,核心模塊主要存放需要全局訪問(wèn)的內(nèi)容,而模型集中存放數(shù)據(jù)模型,所述插件借助事件鏈的處理機(jī)制,實(shí)現(xiàn)了插件與應(yīng)用程序框架內(nèi)的各個(gè)模塊之間的接入與交互,成為應(yīng)用程序框架的擴(kuò)展和補(bǔ)充。
所述的事件鏈的處理機(jī)制實(shí)現(xiàn)模塊與模塊之間的松耦合關(guān)系,通過(guò)建立一條事件鏈來(lái)組織請(qǐng)求的處理者,請(qǐng)求將會(huì)沿著鏈進(jìn)行傳遞,請(qǐng)求發(fā)送者無(wú)須知道請(qǐng)求在何時(shí)、何處以及如何處理,實(shí)現(xiàn)了請(qǐng)求發(fā)送者與處理者的解耦,在系統(tǒng)中,每一個(gè)模塊都有自己的事件處理器,每個(gè)請(qǐng)求都會(huì)在所有的事件處理器上流轉(zhuǎn)一遍,這樣就可以通過(guò)請(qǐng)求來(lái)溝通各個(gè)模塊,從而避免了模塊間的跨層調(diào)用和反向調(diào)用。
本發(fā)明同現(xiàn)有技術(shù)相比,其優(yōu)點(diǎn)在于:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海證券交易所,未經(jīng)上海證券交易所許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310689128.9/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種事件通訊裝置及方法
- 動(dòng)態(tài)權(quán)重事件處理系統(tǒng)和方法
- 攻擊檢測(cè)裝置和攻擊檢測(cè)方法
- 基于Unity的事件管理方法及系統(tǒng)
- 事件解析裝置、事件解析系統(tǒng)、事件解析方法及事件解析程序
- 事件解析裝置、事件解析系統(tǒng)、事件解析方法及事件解析程序
- 事件解析裝置、事件解析系統(tǒng)、事件解析方法及事件解析程序
- 熱點(diǎn)事件確定方法及裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種樹狀模型中節(jié)點(diǎn)的連接方法及其模型、計(jì)算機(jī)裝置和可讀存儲(chǔ)介質(zhì)
- 一種事件處理方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





