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

基于事件總線的模塊間消息傳遞機(jī)制的制作方法

文檔序號:6630651閱讀:474來源:國知局
基于事件總線的模塊間消息傳遞機(jī)制的制作方法
【專利摘要】本發(fā)明涉及編程技術(shù),特別涉及一種不同功能模塊間的消息傳遞方法,目的是為了解決現(xiàn)有軟件編程過程中模塊間耦合嚴(yán)重的問題。本發(fā)明提供一種基于事件總線的模塊間消息傳遞機(jī)制,包括如下步驟:首先,在訂閱者類中實現(xiàn)各種事件的訂閱函數(shù)并進(jìn)行標(biāo)注,訂閱者向事件總線注冊事件。其次,事件總線進(jìn)行事件注冊后,通過反射機(jī)制找出注冊對象中被標(biāo)注的訂閱函數(shù),生成訂閱者對象。然后,以訂閱事件為key,用map來維護(hù)訂閱者信息,所述訂閱者信息包括訂閱者對象、回調(diào)事件函數(shù)及事件類型。最后,通過反射機(jī)制分析訂閱者對象,根據(jù)回調(diào)事件函數(shù)回調(diào)的Method名字確定事件執(zhí)行方式并遍歷map進(jìn)行事件分發(fā)。本發(fā)明適用于編程領(lǐng)域。
【專利說明】基于事件總線的模塊間消息傳遞機(jī)制

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及編程技術(shù),特別涉及一種不同功能模塊間的消息傳遞方法。

【背景技術(shù)】
[0002]在應(yīng)用開發(fā)過程中,我們總會遇到各個組件模塊之間的通信,隨著應(yīng)用功能的增力口,需要監(jiān)聽的事件越來越多,越來越多的模塊需要監(jiān)聽不同的事件,導(dǎo)致大量的模塊需要注冊到各事件管理器上,從而出現(xiàn)各模塊間耦合嚴(yán)重。代碼不易維護(hù)和測試,甚至在出現(xiàn)一些13118的時候,會無從入手。
[0003]軟件產(chǎn)品的終極目標(biāo)是松耦合,模塊之間應(yīng)該盡量減少耦合度,不要違背軟件工程中“高內(nèi)聚,低耦合”的原則。很多技術(shù)的出現(xiàn)都是為解決耦合問題,比如觀察者模式、面向接口編程、事件驅(qū)動架構(gòu)等方法。


【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是為了解決現(xiàn)有軟件編程過程中模塊間耦合嚴(yán)重的問題。
[0005]本發(fā)明提供一種基于事件總線的模塊間消息傳遞機(jī)制,包括如下步驟:
[0006]八.在訂閱者類中實現(xiàn)各種事件的訂閱函數(shù)并進(jìn)行標(biāo)注,訂閱者向事件總線注冊事件;
[0007]8.事件總線進(jìn)行事件注冊后,通過反射機(jī)制找出注冊對象中被標(biāo)注的訂閱函數(shù),生成訂閱者對象;
[0008]0.以訂閱事件為匕7,用111叩來維護(hù)訂閱者信息,所述訂閱者信息包括訂閱者對象、回調(diào)事件函數(shù)及事件類型;
[0009]0.通過反射機(jī)制分析訂閱者對象,根據(jù)回調(diào)事件函數(shù)回調(diào)的16訪0(1名字確定事件執(zhí)行方式并遍歷0?)進(jìn)行事件分發(fā)。
[0010]具體地,步驟0中事件執(zhí)行方式包括:
[0011]直接調(diào)用訂閱對象的回調(diào)函數(shù);
[0012]18111X111-68(1:111 線程的 11811(1161-, ^611(1111^081:0116116 來維護(hù)一個事件列表,3611(116882186方式發(fā)送消息到III 100^)61-,設(shè)定超時機(jī)制,如果事件處理超時,會將后續(xù)的事件重新發(fā)送一次,防止阻塞VI線程;
[0013]^87110:實現(xiàn)仙皿處匕接口,維護(hù)一個?事件隊列,執(zhí)行在事件總線創(chuàng)建的線程池中;
[0014]880^^1-01111(1X111-68(1:判斷當(dāng)前線程是否是主線程,如果是,執(zhí)行方式與
一致,如果當(dāng)前線程不是主線程,則維護(hù)一個^611(^081:0116116事件隊列,并執(zhí)行在事件總線創(chuàng)建的線程池中。
[0015]優(yōu)選地,步驟八中以@311)38(^1136標(biāo)注訂閱函數(shù)。
[0016]具體地,所述反射機(jī)制為扣妨反射機(jī)制。
[0017]本發(fā)明的有益效果是:本發(fā)明基于對模式的改進(jìn)優(yōu)化,提出事件總線概念,減少創(chuàng)建復(fù)雜的類和接口層次結(jié)構(gòu)使用以增強(qiáng)代碼的健壯性和可靠性。

【具體實施方式】
[0018]本發(fā)明針對現(xiàn)有軟件編程過程中模塊間耦合嚴(yán)重的問題,提出一種基于事件總線的模塊間消息傳遞機(jī)制,包括如下步驟:
[0019]八.在訂閱者類中實現(xiàn)各種事件的訂閱函數(shù)并進(jìn)行標(biāo)注,訂閱者向事件總線注冊事件;
[0020]8.事件總線進(jìn)行事件注冊后,通過反射機(jī)制找出注冊對象中被標(biāo)注的訂閱函數(shù),生成訂閱者對象;
[0021]0.以訂閱事件為匕7,用111叩來維護(hù)訂閱者信息,所述訂閱者信息包括訂閱者對象、回調(diào)事件函數(shù)及事件類型;
[0022]0.通過反射機(jī)制分析訂閱者對象,根據(jù)回調(diào)事件函數(shù)回調(diào)的16訪0(1名字確定事件執(zhí)行方式并遍歷0?)進(jìn)行事件分發(fā)。
[0023]事件總線存在如下技術(shù)特點:
[0024]1、利用反射機(jī)制實現(xiàn)訂閱事件函數(shù)基于注解(£1111101:211:1011)0
[0025]2、事件響應(yīng)有多線程選擇,具體包括如下幾種方式:
[0026]:事件響應(yīng)函數(shù)和事件發(fā)布在同一線程中執(zhí)行,這樣可以避免線程切換。
[0027]1^11111111*651(1:事件響應(yīng)函數(shù)會在主線程(111線程)中執(zhí)行。
[0028]8^1(^81*01111(11111*621(1:事件響應(yīng)函數(shù)會在一個后臺線程中執(zhí)行。如果事件發(fā)布函數(shù)不是在主線程中,則會立即在事件發(fā)布線程中執(zhí)行響應(yīng)函數(shù)。如果事件發(fā)布函數(shù)在主線程中,事件總線則會在唯一的一個后臺線程中按照順序來執(zhí)行所有的后臺事件響應(yīng)函數(shù)。
[0029]^87110:事件響應(yīng)函數(shù)在另外一個異步線程中執(zhí)行。該線程和發(fā)布線程、主線程相互獨(dú)立。處理事件響應(yīng)函數(shù)需要較長的時間來執(zhí)行。
[0030]880^^1-01111(1X111-68(1:判斷當(dāng)前線程是否是主線程,如果是,執(zhí)行方式與
一致,如果當(dāng)前線程不是主線程,則維護(hù)一個^611(^081:0116116事件隊列,并執(zhí)行在事件總線創(chuàng)建的線程池中。
【權(quán)利要求】
1.基于事件總線的模塊間消息傳遞機(jī)制,其特征在于,包括如下步驟: A.在訂閱者類中實現(xiàn)各種事件的訂閱函數(shù)并進(jìn)行標(biāo)注,訂閱者向事件總線注冊事件; B.事件總線進(jìn)行事件注冊后,通過反射機(jī)制找出注冊對象中被標(biāo)注的訂閱函數(shù),生成訂閱者對象; C.以訂閱事件為key,用map來維護(hù)訂閱者信息,所述訂閱者信息包括訂閱者對象、回調(diào)事件函數(shù)及事件類型; D.通過反射機(jī)制分析訂閱者對象,根據(jù)回調(diào)事件函數(shù)回調(diào)的Method名字確定事件執(zhí)行方式并遍歷map進(jìn)行事件分發(fā)。
2.如權(quán)利要求1所述的基于事件總線的模塊間消息傳遞機(jī)制,其特征在于,步驟D中事件執(zhí)行方式包括: PostThread:直接調(diào)用訂閱對象的回調(diào)函數(shù); MainThreadiUI 線程的 Handler, PendingPostQueue 來維護(hù)一個事件列表,SendMessage方式發(fā)送消息到UI Looper,設(shè)定超時機(jī)制,如果事件處理超時,會將后續(xù)的事件重新發(fā)送一次,防止阻塞UI線程; Async:實現(xiàn)Runnable接口,維護(hù)一個PendingPostQueue事件隊列,執(zhí)行在事件總線創(chuàng)建的線程池中; BackgroundThread:判斷當(dāng)前線程是否是主線程,如果是,執(zhí)行方式與PostThread —致,如果當(dāng)前線程不是主線程,則維護(hù)一個PendPostQueue事件隊列,并執(zhí)行在事件總線創(chuàng)建的線程池中。
3.如權(quán)利要求1所述的基于事件總線的模塊間消息傳遞機(jī)制,其特征在于,步驟A中以◎Subscribe標(biāo)注訂閱函數(shù)。
4.如權(quán)利要求1所述的基于事件總線的模塊間消息傳遞機(jī)制,其特征在于,所述反射機(jī)制為java反射機(jī)制。
【文檔編號】G06F9/48GK104360904SQ201410551054
【公開日】2015年2月18日 申請日期:2014年10月16日 優(yōu)先權(quán)日:2014年10月16日
【發(fā)明者】龔翔, 程超, 李奇, 羅永江, 陳錫林 申請人:四川長虹電器股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嘉定区| 五常市| 灵寿县| 甘肃省| 仁怀市| 汕尾市| 六安市| 自治县| 庆阳市| 长春市| 四子王旗| 来安县| 柳林县| 滨海县| 商都县| 平原县| 广河县| 沅江市| 二连浩特市| 稷山县| 临桂县| 柳林县| 浮山县| 法库县| 阳朔县| 克山县| 云和县| 会理县| 明光市| 宁城县| 米林县| 淮滨县| 内乡县| 德阳市| 丹江口市| 潢川县| 莱阳市| 简阳市| 张家口市| 白城市| 河间市|