两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

應(yīng)用程序中用戶界面ui與模型層數(shù)據(jù)交互的方法和裝置的制造方法

文檔序號(hào):9551338閱讀:909來(lái)源:國(guó)知局
應(yīng)用程序中用戶界面ui與模型層數(shù)據(jù)交互的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及應(yīng)用程序技術(shù)領(lǐng)域,特別是涉及一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的方法和一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的裝置。
【背景技術(shù)】
[0002]應(yīng)用程序中的UI (User Interface,用戶界面)亦稱使用者界面,是應(yīng)用程序和用戶之間進(jìn)行交互和信息交換的媒介,它實(shí)現(xiàn)信息的內(nèi)部形式與用戶可以接受形式之間的轉(zhuǎn)換。
[0003]應(yīng)用程序的程序架構(gòu)利用模型層來(lái)抽象應(yīng)用程序中更新用戶界面UI用到的所有數(shù)據(jù),一般將與用戶交互操作的用戶界面UI與實(shí)際數(shù)據(jù)分開來(lái)處理,實(shí)際數(shù)據(jù)可能來(lái)自網(wǎng)絡(luò)、本地?cái)?shù)據(jù)庫(kù)、配置文件等。這種分開處理的方式能有效地應(yīng)用處理邏輯與用戶界面UI交互的耦合關(guān)系。通常所有用戶界面UI的操作必須在主線程中完成,而實(shí)際數(shù)據(jù)的讀取會(huì)建立對(duì)應(yīng)的線程,此時(shí)不僅需要實(shí)現(xiàn)在用戶界面UI與數(shù)據(jù)模型的通信機(jī)制,還需要考慮跨線程傳遞消息的問(wèn)題。目前的解決的方式是通過(guò)自定義的窗口消息來(lái)完成線程傳遞消息,但是自定義的窗口消息實(shí)現(xiàn)用戶界面UI與模型層數(shù)據(jù)通信機(jī)制存在以下問(wèn)題:
[0004]1)不同種類消息需定義一個(gè)不與應(yīng)用程序中其它窗口沖突的消息號(hào),維護(hù)比較麻煩。
[0005]2)消息只能使用兩個(gè)32位整型數(shù)據(jù)傳遞,如果采用其它數(shù)據(jù)類型傳遞還需要考慮內(nèi)存釋放問(wèn)題,很容易造成內(nèi)存泄漏。
[0006]3)必須知道目標(biāo)窗口的句柄才能正確發(fā)送消息。
[0007]4)若要增加消息需要改動(dòng)原有代碼,不符合開閉原則。
[0008]因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是:提出一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的通信機(jī)制,使得UI線程能夠根據(jù)數(shù)據(jù)模型變化時(shí)更新界面,而不必使用線程間復(fù)雜同步機(jī)制來(lái)實(shí)現(xiàn)界面更新。在模型層數(shù)據(jù)發(fā)生變化時(shí),可以通過(guò)內(nèi)部維護(hù)的消息處理隊(duì)列轉(zhuǎn)發(fā)到UI線程中進(jìn)行界面更新,不僅簡(jiǎn)化了實(shí)現(xiàn)邏輯,同時(shí)也解耦了用戶界面UI與數(shù)據(jù)模型層,因此更加容易適應(yīng)可擴(kuò)放性和更為動(dòng)態(tài)的網(wǎng)絡(luò)拓?fù)洹?br>
【發(fā)明內(nèi)容】

[0009]本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題是提供一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的方法,使得UI線程能夠根據(jù)數(shù)據(jù)模型變化時(shí)更新界面,而不必使用線程間復(fù)雜同步機(jī)制來(lái)實(shí)現(xiàn)界面更新。在模型層數(shù)據(jù)發(fā)生變化時(shí),可以通過(guò)內(nèi)部維護(hù)的消息處理隊(duì)列轉(zhuǎn)發(fā)到UI線程中進(jìn)行界面更新,不僅簡(jiǎn)化了實(shí)現(xiàn)邏輯,同時(shí)也解耦了用戶界面UI與數(shù)據(jù)模型層,因此更加容易適應(yīng)可擴(kuò)放性和更為動(dòng)態(tài)的網(wǎng)絡(luò)拓?fù)洹?br>[0010]相應(yīng)的,本發(fā)明實(shí)施例還提供了一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的裝置,用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
[0011]為了解決上述問(wèn)題,本發(fā)明公開了一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的方法,所述應(yīng)用程序中還包括工作線程,所述用戶界面UI中包括UI線程,所述工作線程用于獲取所述模型層數(shù)據(jù)的消息數(shù)據(jù),并用于依據(jù)所述消息數(shù)據(jù)后生成消息處理通知;
[0012]所述方法包括:
[0013]所述UI線程接收所述工作線程發(fā)送的消息處理通知;
[0014]所述UI線程依據(jù)所述消息處理通知獲取所述消息數(shù)據(jù);
[0015]所述UI線程采用所述消息數(shù)據(jù)更新所述用戶界面UI。
[0016]優(yōu)選地,所述工作線程中包括主題TOPIC對(duì)象,所述主題TOPIC對(duì)象中包括消息處理隊(duì)列,所述工作線程獲取的消息數(shù)據(jù)保存于所述主題TOPIC對(duì)象的消息處理隊(duì)列中,所述消息處理通知中包括所述消息數(shù)據(jù)對(duì)應(yīng)的消息標(biāo)識(shí),所述UI線程依據(jù)所述消息處理通知獲取所述消息數(shù)據(jù)的步驟包括:
[0017]所述UI線程針對(duì)所述消息處理通知發(fā)送消息獲取請(qǐng)求至所述主題TOPIC對(duì)象;所述消息獲取請(qǐng)求中包括消息標(biāo)識(shí),所述主題TOPIC對(duì)象用于在所述消息處理隊(duì)列中查找與所述消息標(biāo)識(shí)對(duì)應(yīng)的消息數(shù)據(jù);
[0018]所述UI線程接收所述主題TOPIC對(duì)象針對(duì)所述消息標(biāo)識(shí)發(fā)送的消息數(shù)據(jù);
[0019]優(yōu)選地,在所述UI線程依據(jù)所述消息處理通知獲取所述消息數(shù)據(jù)的步驟之后,還包括:
[0020]所述UI線程針對(duì)所述消息處理通知發(fā)送消息確認(rèn)響應(yīng)至所述工作線程。
[0021]優(yōu)選地,所述消息數(shù)據(jù)具有不允許修改的屬性。
[0022]本發(fā)明實(shí)施例還公開了一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的方法,所述應(yīng)用程序中還包括工作線程,所述用戶界面UI中包括UI線程,所述方法包括:
[0023]所述工作線程從所述模型層數(shù)據(jù)中獲取消息數(shù)據(jù);
[0024]所述工作線程針對(duì)所述消息數(shù)據(jù)向所述UI線程發(fā)送消息處理通知;
[0025]所述工作線程接收所述UI線程針對(duì)所述消息處理通知發(fā)送的消息獲取請(qǐng)求;
[0026]所述工作線程針對(duì)所述消息獲取請(qǐng)求向所述UI線程發(fā)送消息數(shù)據(jù)。
[0027]優(yōu)選地,所述消息獲取請(qǐng)求中包括所述消息數(shù)據(jù)對(duì)應(yīng)的消息標(biāo)識(shí),所述工作線程中包括主題TOPIC對(duì)象,所述主題TOPIC對(duì)象中包括消息處理隊(duì)列,所述工作線程接收的消息數(shù)據(jù)保存于所述主題TOPIC對(duì)象的消息處理隊(duì)列中,所述消息處理隊(duì)列的各個(gè)表項(xiàng)中包括消息標(biāo)識(shí)及對(duì)應(yīng)的消息數(shù)據(jù),若所述主題TOPIC對(duì)象為采用升序的方式生成所述消息標(biāo)識(shí),所述工作線程針對(duì)所述消息獲取請(qǐng)求向所述UI線程發(fā)送消息數(shù)據(jù)的步驟包括:
[0028]子步驟S11,所述主題TOPIC對(duì)象在所述消息處理隊(duì)列的中間位置查找是否存在所述消息標(biāo)識(shí)的匹配項(xiàng);若是,則執(zhí)行子步驟S12,若否,則執(zhí)行子步驟S13 ;
[0029]子步驟S12,所述主題TOPIC對(duì)象獲取所述消息標(biāo)識(shí)對(duì)應(yīng)的消息數(shù)據(jù),并發(fā)送至所述UI線程;
[0030]子步驟S13,所述主題TOPIC對(duì)象判斷所述消息標(biāo)識(shí)是否大于所述消息處理隊(duì)列的中間位置的消息標(biāo)識(shí);若是,則執(zhí)行子步驟S14,若否,則執(zhí)行子步驟S15 ;
[0031]子步驟S14,所述主題TOPIC對(duì)象在所述消息處理隊(duì)列的中間位置之前的表項(xiàng)作為消息處理隊(duì)列,并返回子步驟S11 ;
[0032]子步驟S15,所述主題TOPIC對(duì)象在所述消息處理隊(duì)列的中間位置之后的表項(xiàng)作為消息處理隊(duì)列,并返回子步驟S11。
[0033]本發(fā)明實(shí)施例還公開了一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的裝置,所述應(yīng)用程序中還包括工作線程,所述用戶界面UI中包括UI線程,所述工作線程用于獲取所述模型層數(shù)據(jù)的消息數(shù)據(jù),并用于依據(jù)所述消息數(shù)據(jù)后生成消息處理通知;
[0034]所述裝置包括:
[0035]位于UI線程的接收模塊,用于接收所述工作線程發(fā)送的消息處理通知;
[0036]位于UI線程的獲取模塊,用于依據(jù)所述消息處理通知獲取所述消息數(shù)據(jù);
[0037]位于UI線程的更新收模塊,用于采用所述消息數(shù)據(jù)更新所述用戶界面UI。
[0038]優(yōu)選地,所述工作線程中包括主題TOPIC對(duì)象,所述主題TOPIC對(duì)象中包括消息處理隊(duì)列,所述工作線程獲取的消息數(shù)據(jù)保存于所述主題TOPIC對(duì)象的消息處理隊(duì)列中,所述消息處理通知中包括所述消息數(shù)據(jù)對(duì)應(yīng)的消息標(biāo)識(shí),所述位于UI線程的獲取模塊包括:
[0039]位于UI線程的發(fā)送子模塊,用于針對(duì)所述消息處理通知發(fā)送消息獲取請(qǐng)求至所述主題TOPIC對(duì)象;所述消息獲取請(qǐng)求中包括消息標(biāo)識(shí),所述主題TOPIC對(duì)象用于在所述消息處理隊(duì)列中查找與所述消息標(biāo)識(shí)對(duì)應(yīng)的消息數(shù)據(jù);
[0040]位于UI線程的接收子模塊,用于接收所述主題TOPIC對(duì)象針對(duì)所述消息標(biāo)識(shí)發(fā)送的消息數(shù)據(jù);
[0041 ] 優(yōu)選地,所述裝置還包括:
[0042]位于UI線程的發(fā)送模塊,用于針對(duì)所述消息處理通知發(fā)送消息確認(rèn)響應(yīng)至所述工作線程。
[0043]本發(fā)明實(shí)施例還公開了一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的裝置,所述應(yīng)用程序中還包括工作線程,所述用戶界面UI中包括UI線程,所述裝置包括:
[0044]位于工作線程的第一接收模塊,用于從所述模型層數(shù)據(jù)中獲取消息數(shù)據(jù);
[0045]位于工作線程的第一發(fā)送模塊,用于針對(duì)所述消息數(shù)據(jù)向所述UI線程發(fā)送消息處理通知;
[0046]位于工作線程的第二接收模塊,用于接收所述UI線程針對(duì)所述消息處理通知發(fā)送的消息獲取請(qǐng)求;
[0047]位于工作線程的第二發(fā)送模塊,用于針對(duì)所述消息獲取請(qǐng)求向所述UI線程發(fā)送消息數(shù)據(jù)。
[0048]與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0049]在本發(fā)明實(shí)施例中,將用以更新用戶界面UI的消息數(shù)據(jù)的發(fā)布者(工作線程),以及,預(yù)定所述消息數(shù)據(jù)的預(yù)訂者(UI線程)獨(dú)立開來(lái),使得各個(gè)模塊解耦,便于適用用戶需求的不斷變化,因此提高應(yīng)用程序的性能,并且較容易維護(hù)。
[0050]此外,使用閉包技術(shù)保證在消息數(shù)據(jù)接收時(shí)不至于由于運(yùn)行環(huán)境變化引起消息處理的不確定性問(wèn)題,提高了系統(tǒng)的安全性。另外,實(shí)現(xiàn)上采用了對(duì)有序表的二分查找方式,運(yùn)行效率高。
【附圖說(shuō)明】
[0051]圖1是本發(fā)明的一種應(yīng)用程序中用戶界面UI與模型層數(shù)據(jù)交互的方法實(shí)施例1的步驟流程圖;
[0052]圖2是本發(fā)明的一種發(fā)布/訂閱式的消息發(fā)送的示意圖;
[0053]圖3是本發(fā)明的一種發(fā)布/訂閱式的消息發(fā)送的流程圖;
[0054]圖4是本發(fā)明的一種應(yīng)用程序的線程工作流程圖;
[0055]圖5是本發(fā)明的一種應(yīng)用程序中用戶界
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
孟津县| 河东区| 永胜县| 麦盖提县| 什邡市| 永兴县| 宜兰市| 双城市| 射洪县| 松滋市| 邯郸县| 林口县| 平定县| 辰溪县| 巢湖市| 枞阳县| 黄浦区| 温泉县| 明水县| 磐石市| 刚察县| 莱芜市| 江城| 宣化县| 科技| 崇仁县| 黄龙县| 马山县| 汽车| 孟州市| 万山特区| 如皋市| 桐柏县| 林周县| 阿勒泰市| 阆中市| 永兴县| 墨脱县| 神木县| 昆明市| 临泉县|