件元數(shù)據(jù)信息生成每個(gè)組件的組件實(shí)例,在本實(shí)施例中一個(gè)組件對(duì)應(yīng)一個(gè)組件實(shí)例,這使得組件管理中心可以快速的調(diào)用或查找組件。
[0054](5)、組件包裝器,用于包裝與所述組件A有邏輯關(guān)系且產(chǎn)生所述事件觸發(fā)請(qǐng)求所觸發(fā)的事件類型的組件所產(chǎn)生的組件實(shí)例。
[0055]參照?qǐng)D3,本實(shí)施例中基于模型驅(qū)動(dòng)的利用反射機(jī)制進(jìn)行動(dòng)態(tài)交互系統(tǒng)的交互方法,該方法包括:
[0056]SI,事件管理器接收組件A發(fā)出的事件觸發(fā)請(qǐng)求,具體按照下述方法實(shí)現(xiàn):
[0057]Al,所述事件管理器捕獲組件A發(fā)出的事件觸發(fā)請(qǐng)求;
[0058]A2,從組件A中,獲取與觸發(fā)事件類型相關(guān)聯(lián)的方法及參數(shù);
[0059]A3,將所述事件觸發(fā)請(qǐng)求觸發(fā)的事件類型和獲取的與觸發(fā)事件類型相關(guān)聯(lián)的方法及參數(shù),發(fā)送給所述組件管理中心的事件管理器;
[0060]S2,在所述驅(qū)動(dòng)模型的基礎(chǔ)上,組件管理中心獲取與所述組件A有邏輯關(guān)系且與所述事件觸發(fā)請(qǐng)求觸發(fā)的事件類型相對(duì)應(yīng)的組件的信息;其中,與所述事件觸發(fā)請(qǐng)求觸發(fā)的事件類型相對(duì)應(yīng)的組件的數(shù)量為I個(gè)或多個(gè)。
[0061]S3,判斷所述組件管理容器內(nèi)部是否存儲(chǔ)與所述組件相對(duì)應(yīng)的組件實(shí)例,如果存在,則進(jìn)入S4 ;如果不存在,則進(jìn)入S5 ;
[0062]S4,組件生成器獲取所述組件實(shí)例,組件包裝器反射調(diào)用與所述組件實(shí)例相相關(guān)聯(lián)的組件中存儲(chǔ)的方法;
[0063]S5,組件生成器調(diào)用產(chǎn)生所述組件實(shí)例的方法,創(chuàng)建所述組件實(shí)例,組件包裝器依據(jù)所述組件實(shí)例反射調(diào)用與所述組件實(shí)例相關(guān)聯(lián)的組件中存儲(chǔ)的方法。
[0064]本實(shí)施例中,在步驟SI之前還存在以下步驟:組件管理容器中預(yù)先存儲(chǔ)與所述組件管理容器連接的各個(gè)組件的描述信息和各個(gè)組件的邏輯關(guān)系信息,同時(shí),組件管理容器中的組件邏輯控制模塊依據(jù)組件邏輯關(guān)系信息和組件描述信息產(chǎn)生組件實(shí)例,并將所述組件實(shí)例存儲(chǔ)在組件容器的存儲(chǔ)單元中。
[0065]本實(shí)施例中,步驟S2具體按照下述方法實(shí)現(xiàn):
[0066]BI,所述組件管理中心中的驅(qū)動(dòng)模型依據(jù)組件A的元數(shù)據(jù)信息和組件A中與觸發(fā)事件類型相關(guān)聯(lián)的方法及參數(shù),在元模型中讀取與組件A有邏輯驅(qū)動(dòng)關(guān)系的組件集合和/或組件方法集合;
[0067]B2,在所述組件集合和/或組件方法集合中,依據(jù)所述事件類型查找與產(chǎn)生所述事件類型相對(duì)應(yīng)的組件;
[0068]B3,從元模型中讀取所述組件的元數(shù)據(jù)信息;
[0069]圖7是現(xiàn)有組件調(diào)用技術(shù)中靜態(tài)組件調(diào)用的交互示意圖,這種組件交互方法組件之間的耦合性很強(qiáng),圖8是本發(fā)明所述基于模型驅(qū)動(dòng)的利用反射機(jī)制進(jìn)行動(dòng)態(tài)交互,只通過傳遞組件A中Fun_a方法名和需要調(diào)用的組件B的Fun_b的方法名,得到了同樣的效果。本發(fā)明組件之間的交互同時(shí)被傳遞到容器層面統(tǒng)一進(jìn)行管理,與現(xiàn)有的靜態(tài)組件調(diào)用交互相比,降低了組件之間的硬編碼和耦合性。
[0070]通過采用本發(fā)明公開的上述技術(shù)方案,得到了如下有益的效果:
[0071]本發(fā)明提出了基于模型驅(qū)動(dòng)的利用反射機(jī)制進(jìn)行動(dòng)態(tài)交互方法,它不需要顯性硬編碼組件之間的調(diào)用和交互,而是通過組件管理容器按照組件元數(shù)據(jù)信息進(jìn)行查找和創(chuàng)建組件,把組件之間的直接交互通過組件管理容器調(diào)用來進(jìn)行,這種實(shí)現(xiàn)方法簡單,解決組件構(gòu)件之間的非侵入性和組件解耦等問題,大大降低了組件之間的依賴性和硬編碼,減少了代碼集成工作量,在項(xiàng)目的具體實(shí)施中可得到了非常好的效果。
[0072]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種基于模型驅(qū)動(dòng)的利用反射機(jī)制進(jìn)行動(dòng)態(tài)交互的系統(tǒng),其特征在于,所述系統(tǒng)包括: 一個(gè)組件管理容器和與所述組件管理容器關(guān)聯(lián)的多個(gè)組件; 每個(gè)所述組件的元數(shù)據(jù)信息和與其他組件之間的調(diào)用邏輯關(guān)系存儲(chǔ)在所述組件管理容器中; 所述組件管理容器負(fù)責(zé)產(chǎn)生每個(gè)組件的組件實(shí)例,并根據(jù)每個(gè)組件的調(diào)用邏輯關(guān)系查找和創(chuàng)建組件實(shí)例;在組件間交互邏輯和組件元數(shù)據(jù)信息描述的基礎(chǔ)上,動(dòng)態(tài)調(diào)用和組織與組件實(shí)例相關(guān)的組件中存儲(chǔ)的方法。2.根據(jù)權(quán)利要求1所述系統(tǒng),其特征在于,所述組件管理容器包括:組件邏輯控制模塊、組件管理中心、事件管理器、組件生成器、組件包裝器; 組件邏輯控制模塊,根據(jù)組件間交互邏輯和驅(qū)動(dòng)模型,獲取與發(fā)出事件觸發(fā)請(qǐng)求的組件A有邏輯關(guān)系的組件實(shí)例; 組件管理中心,用于讀取所述組件A的元數(shù)據(jù)信息和與所述組件A存在邏輯關(guān)系的組件信息; 事件管理器,用于接收所述組件A發(fā)出的事件觸發(fā)請(qǐng)求并獲取所述組件A中觸發(fā)相應(yīng)事件的參數(shù)信息; 所述參數(shù)信息包括:方法和參數(shù); 組件生成器,根據(jù)組件元數(shù)據(jù)信息生成每個(gè)組件的組件實(shí)例; 組件包裝器,用于包裝與所述組件A有邏輯關(guān)系且產(chǎn)生所述事件觸發(fā)請(qǐng)求所觸發(fā)的事件類型的組件所產(chǎn)生的組件實(shí)例。3.根據(jù)權(quán)利要求2所述系統(tǒng),其特征在于,所述驅(qū)動(dòng)模型包括所有組件驅(qū)動(dòng)唯一序列號(hào)表、組件元數(shù)據(jù)管理信息表和組件方法管理表,所述所有組件驅(qū)動(dòng)唯一序列號(hào)表、所述組件元數(shù)據(jù)管理信息表和所述組件方法管理表通過組件的唯一序列號(hào)關(guān)聯(lián)。4.一種如權(quán)利要求3所述基于模型驅(qū)動(dòng)的利用反射機(jī)制進(jìn)行動(dòng)態(tài)交互系統(tǒng)的交互方法,其特征在于,該方法包括: SI,事件管理器接收組件A發(fā)出的事件觸發(fā)請(qǐng)求; S2,在所述驅(qū)動(dòng)模型的基礎(chǔ)上,組件管理中心獲取與所述組件A有邏輯關(guān)系且與所述事件觸發(fā)請(qǐng)求觸發(fā)的事件類型相對(duì)應(yīng)的組件的信息; S3,判斷所述組件管理容器內(nèi)部是否存儲(chǔ)與所述組件相對(duì)應(yīng)的組件實(shí)例,如果存在,則進(jìn)入S4 ;如果不存在,則進(jìn)入S5 ; S4,組件生成器獲取所述組件實(shí)例,組件包裝器反射調(diào)用與所述組件實(shí)例相相關(guān)聯(lián)的組件中存儲(chǔ)的方法; S5,組件生成器調(diào)用產(chǎn)生所述組件實(shí)例的方法,創(chuàng)建所述組件實(shí)例,組件包裝器依據(jù)所述組件實(shí)例反射調(diào)用與所述組件實(shí)例相關(guān)聯(lián)的組件中存儲(chǔ)的方法。5.根據(jù)權(quán)利要求4所述基于反射機(jī)制的軟件構(gòu)件動(dòng)態(tài)交互方法,其特征在于,在步驟SI之前還存在以下步驟: 組件管理容器中預(yù)先存儲(chǔ)與所述組件管理容器連接的各個(gè)組件的描述信息和各個(gè)組件的邏輯關(guān)系信息,同時(shí),組件管理容器中的組件邏輯控制模塊依據(jù)組件邏輯關(guān)系信息和組件描述信息產(chǎn)生組件實(shí)例,并將所述組件實(shí)例存儲(chǔ)在組件容器的存儲(chǔ)單元中。6.根據(jù)權(quán)利要求4所述基于反射機(jī)制的軟件構(gòu)件動(dòng)態(tài)交互方法,其特征在于,步驟SI具體按照下述方法實(shí)現(xiàn): Al,所述事件管理器捕獲組件A發(fā)出的事件觸發(fā)請(qǐng)求; A2,從組件A中,獲取與觸發(fā)事件類型相關(guān)聯(lián)的方法及參數(shù); A3,將所述事件觸發(fā)請(qǐng)求觸發(fā)的事件類型和獲取的與觸發(fā)事件類型相關(guān)聯(lián)的方法及參數(shù),發(fā)送給所述組件管理中心的事件管理器。7.根據(jù)權(quán)利要求4所述基于反射機(jī)制的軟件構(gòu)件動(dòng)態(tài)交互方法,其特征在于,步驟S2具體按照下述方法實(shí)現(xiàn): BI,所述組件管理中心中的驅(qū)動(dòng)模型依據(jù)組件A的元數(shù)據(jù)信息和組件A中與觸發(fā)事件類型相關(guān)聯(lián)的方法及參數(shù),在元模型中讀取與組件A有邏輯驅(qū)動(dòng)關(guān)系的組件集合和/或組件方法集合; B2,在所述組件集合和/或組件方法集合中,依據(jù)所述事件類型查找與產(chǎn)生所述事件類型相對(duì)應(yīng)的組件; B3,從元模型中讀取所述組件的元數(shù)據(jù)信息。8.根據(jù)權(quán)利要求4所述基于反射機(jī)制的軟件構(gòu)件動(dòng)態(tài)交互方法,其特征在于,步驟S2中,與所述事件觸發(fā)請(qǐng)求觸發(fā)的事件類型相對(duì)應(yīng)的組件的數(shù)量為I個(gè)或多個(gè)。
【專利摘要】本發(fā)明公開了一種基于模型驅(qū)動(dòng)的利用反射機(jī)制進(jìn)行動(dòng)態(tài)交互的系統(tǒng)及方法,涉及計(jì)算機(jī)信息技術(shù)領(lǐng)域。該系統(tǒng)包括一個(gè)組件管理容器和與所述組件管理容器關(guān)聯(lián)的多個(gè)組件;每個(gè)所述組件的元數(shù)據(jù)信息和與其他組件之間的調(diào)用邏輯關(guān)系存儲(chǔ)在所述組件管理容器中。該方法通過組件管理容器按照組件元數(shù)據(jù)信息進(jìn)行查找和創(chuàng)建組件,把組件之間的直接交互通過組件管理容器調(diào)用,實(shí)現(xiàn)組件之間的交互。本發(fā)明組件構(gòu)件之間的非侵入性和組件解耦等問題,大大降低了組件之間的依賴性和硬編碼,減少了代碼集成工作量。
【IPC分類】G06F9/46, G06F9/44
【公開號(hào)】CN105022626
【申請(qǐng)?zhí)枴緾N201510289029
【發(fā)明人】武建軍
【申請(qǐng)人】克拉瑪依紅有軟件有限責(zé)任公司
【公開日】2015年11月4日
【申請(qǐng)日】2015年5月29日