欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于java的動態(tài)加載命令的方法及裝置與流程

文檔序號:12119938閱讀:264來源:國知局
基于java的動態(tài)加載命令的方法及裝置與流程

本發(fā)明涉及軟件架構(gòu)技術(shù)領(lǐng)域,尤其涉及一種基于java的動態(tài)加載命令的方法及裝置。



背景技術(shù):

軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。

Java注解:注解(Annotation),也叫元數(shù)據(jù)。一種代碼級別的說明。它是JDK1.5及以后版本引入的一個特性,與類、接口、枚舉是在同一個層次。它可以聲明在包、類、字段、方法、局部變量、方法參數(shù)等的前面,用來對這些元素進(jìn)行說明,注釋。注解是以‘@注解名’在代碼中存在的,根據(jù)注解參數(shù)的個數(shù),我們可以將注解分為:標(biāo)記注解、單值注解、完整注解三類。它們都不會直接影響到程序的語義,只是作為注解(標(biāo)識)存在。另外,可以在編譯時選擇代碼里的注解是否只存在于源代碼級,或者它也能在class文件、或者運(yùn)行時中出現(xiàn)(SOURCE/CLASS/RUNTIME)。

在實際應(yīng)用中,一般的做法是編寫每個功能的實現(xiàn)類,根據(jù)命令加載不同的功能類實現(xiàn)相關(guān)功能,對架構(gòu)設(shè)計來說是高耦合的,在軟件生命周期中是不易擴(kuò)展、維護(hù)的。系統(tǒng)耦合度太高不利于擴(kuò)展和維護(hù),修改一個類的內(nèi)容要關(guān)聯(lián)修改多個跟這個有關(guān)系的類,對于程序代碼的維護(hù)成本非常高。



技術(shù)實現(xiàn)要素:

本發(fā)明的主要目的是提供一種基于java的動態(tài)加載命令的方法,能夠有效的降低程序的耦合度,有利于提高程序的擴(kuò)展能力。

為實現(xiàn)上述目的,本發(fā)明采用的一個技術(shù)方案為:提供一種基于java的動態(tài)加載命令的方法,包括如下步驟:

創(chuàng)建接口實現(xiàn)類的實例,其中,所述接口實現(xiàn)類的實例包含有至少一命令注解;

接收動態(tài)加載命令,所述動態(tài)加載命令中包含有命令名稱;

將待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解進(jìn)行匹配,

如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配成功,則調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例。

優(yōu)選地,所述創(chuàng)建接口實現(xiàn)類的實例的步驟,具體包括:

預(yù)先定義一命令接口類以及描述所述命令接口類的java注解類,其中,所述命令接口類包含有一引導(dǎo)程序;

根據(jù)該引導(dǎo)程序在原程序的接口實現(xiàn)類中實現(xiàn)命令接口類;以及

將java注解類對應(yīng)添加至命令接口類中,形成帶有命令注解的接口實現(xiàn)類;

在原程序啟動時,掃描帶有命令注解的接口實現(xiàn)類,并根據(jù)帶有命令注解的接口實現(xiàn)類創(chuàng)建包含有命令注解的接口實現(xiàn)類的實例。

優(yōu)選地,所述在原程序啟動時,掃描帶有命令注解的接口實現(xiàn)類的步驟,具體包括:

在原程序啟動時,利用java反射機(jī)制掃描帶有命令注解的接口實現(xiàn)類。

優(yōu)選地,所述創(chuàng)建接口實現(xiàn)類的實例的步驟之后,還包括:

將接口實現(xiàn)類的實例緩存至命令池中。

為實現(xiàn)上述目的,本發(fā)明采用的另一個技術(shù)方案為:提供一種基于java的動態(tài)加載命令的裝置,包括:

創(chuàng)建模塊,用于創(chuàng)建接口實現(xiàn)類的實例,其中,所述接口實現(xiàn)類的實例包含有至少一命令注解;

接收模塊,用于接收動態(tài)加載命令,所述動態(tài)加載命令中包含有命令名稱;

匹配模塊,用于將待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解進(jìn)行匹配,

如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配成功,則調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例。

優(yōu)選地,所述創(chuàng)建模塊,具體包括:

定義單元,用于預(yù)先定義一命令接口類以及描述所述命令接口類的java注解類,其中,所述命令接口類包含有一引導(dǎo)程序;

實現(xiàn)單元,用于根據(jù)該引導(dǎo)程序在原程序的接口實現(xiàn)類中實現(xiàn)命令接口類,并將java注解類對應(yīng)添加至命令接口類中,形成帶有命令注解的接口實現(xiàn)類;

掃描單元,在原程序啟動時,用于掃描帶有命令注解的接口實現(xiàn)類;以及

創(chuàng)建單元,用于根據(jù)帶有命令注解的接口實現(xiàn)類創(chuàng)建包含有命令注解的接口實現(xiàn)類的實例。

優(yōu)選地,所述掃描單元,具體用于:

在原程序啟動時,利用java反射機(jī)制掃描帶有命令注解的接口實現(xiàn)類。

優(yōu)選地,所述創(chuàng)建模塊,還用于:

將接口實現(xiàn)類的實例緩存至命令池中。

本發(fā)明的技術(shù)方案主要采用,首先創(chuàng)建接口實現(xiàn)類的實例,該接口實現(xiàn)類的實例包含有至少一命令注解;然后接收用戶發(fā)送的動態(tài)加載命令,所述動態(tài)加載命令中包含有命令名稱;再將待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解進(jìn)行匹配,如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配成功,則調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例,并可以將調(diào)用的接口實現(xiàn)類的實例完成相關(guān)的功能操作。通過創(chuàng)建包含有命令注解的接口實現(xiàn)類的實例,在接收到動態(tài)加載命令時,能夠調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例,實現(xiàn)對應(yīng)的命令操作,可以降低對象的耦合度,有利于系統(tǒng)開發(fā)和維護(hù);另外,本方案還可以在程序運(yùn)行時動態(tài)增加修改命令,提高了程序的擴(kuò)展性,使得定制更加靈活。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖示出的結(jié)構(gòu)獲得其他的附圖。

圖1為本發(fā)明一實施例基于java的動態(tài)加載命令的方法的方法流程圖;

圖2為圖1的步驟S10的具體流程圖;

圖3為本發(fā)明另一實施例基于java的動態(tài)加載命令的裝置的模塊方框圖;

圖4為圖3的創(chuàng)建模塊的模塊方框圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

需要說明,本發(fā)明中涉及“第一”、“第二”等的描述僅用于描述目的,而不能理解為指示或暗示其相對重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。另外,各個實施例之間的技術(shù)方案可以相互結(jié)合,但是必須是以本領(lǐng)域普通技術(shù)人員能夠?qū)崿F(xiàn)為基礎(chǔ),當(dāng)技術(shù)方案的結(jié)合出現(xiàn)相互矛盾或無法實現(xiàn)時應(yīng)當(dāng)認(rèn)為這種技術(shù)方案的結(jié)合不存在,也不在本發(fā)明要求的保護(hù)范圍之內(nèi)。

請參照圖1,在本發(fā)明實施例中,該基于java的動態(tài)加載命令的方法,包括如下步驟:

步驟S10、創(chuàng)建接口實現(xiàn)類的實例,其中,所述接口實現(xiàn)類的實例包含有至少一命令注解;

步驟S20、接收動態(tài)加載命令,所述動態(tài)加載命令中包含有命令名稱;

步驟S30、將待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解進(jìn)行匹配,

如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配成功,則調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例。

本實施例中,該接口實現(xiàn)類可以包含有多個命令注解,每一命令注解相當(dāng)于命令標(biāo)識,當(dāng)接收到動態(tài)加載命令時,通過將動態(tài)加載命令與命令注解匹配,在匹配成功后可以調(diào)用該命令注解對應(yīng)的接口實現(xiàn)類的實例,以執(zhí)行對應(yīng)的功能操作??梢岳斫獾?,本方案中的創(chuàng)建的接口實現(xiàn)類的實例可能有多個,多個接口實現(xiàn)類的實例可能滿足用戶的不同要求,多個接口實現(xiàn)類的實例可以暫存于命令池中。上述實施例中,如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配失敗時,則匹配失敗,并返回調(diào)用失敗的信息。

本發(fā)明的技術(shù)方案主要采用,首先創(chuàng)建接口實現(xiàn)類的實例,該接口實現(xiàn)類的實例包含有至少一命令注解;然后接收用戶發(fā)送的動態(tài)加載命令,所述動態(tài)加載命令中包含有命令名稱;再將待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解進(jìn)行匹配,如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配成功,則調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例,并可以將調(diào)用的接口實現(xiàn)類的實例完成相關(guān)的功能操作。通過創(chuàng)建包含有命令注解的接口實現(xiàn)類的實例,在接收到動態(tài)加載命令時,能夠調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例,實現(xiàn)對應(yīng)的命令操作,可以降低對象的耦合度,有利于系統(tǒng)開發(fā)和維護(hù);另外,本方案還可以在程序運(yùn)行時動態(tài)增加修改命令,提高了程序的擴(kuò)展性,使得定制更加靈活。

請參照圖2,在一具體的實施例中,所述創(chuàng)建接口實現(xiàn)類的實例的步驟S10,具體包括:

步驟S11、預(yù)先定義一命令接口類以及描述所述命令接口類的java注解類,其中,所述命令接口類包含有一引導(dǎo)程序;

步驟S12、根據(jù)該引導(dǎo)程序在原程序的接口實現(xiàn)類中實現(xiàn)命令接口類,并將java注解類對應(yīng)添加至命令接口類中,形成帶有命令注解的接口實現(xiàn)類;

步驟S13、在原程序啟動時,掃描帶有命令注解的接口實現(xiàn)類;

步驟S14、根據(jù)帶有命令注解的接口實現(xiàn)類創(chuàng)建包含有命令注解的接口實現(xiàn)類的實例。

本實施例中,通過先定義一命令接口類以及對應(yīng)的java注解類,而后通過引導(dǎo)程序在原程序的實現(xiàn)類實現(xiàn)該命令接口類,并將java注解類添加至對應(yīng)的命令接口類中,得到帶有命令注解的接口實現(xiàn)類;在原程序啟動掃描或者定期掃描帶有命令注解的接口實現(xiàn)類;以及根據(jù)該帶有命令注解的接口實現(xiàn)類創(chuàng)建接口實現(xiàn)類的實例。由于java注解類包含有一個或多個命令標(biāo)識,在用戶輸入對應(yīng)的動態(tài)加載命令時,該動態(tài)加載命令的命令名稱與命令注解的命令標(biāo)識進(jìn)行匹配,在匹配成功后可以調(diào)用對應(yīng)的接口類的實例,實現(xiàn)相應(yīng)的功能,由于一個命令接口類的實例能夠解決多個功能,無需創(chuàng)建多個功能類,可以降低對象的耦合度,提高了程序的擴(kuò)展性,使得功能定制更加靈活。

在一具體的實施例中,所述在原程序啟動時,掃描帶有命令注解的接口實現(xiàn)類的步驟,具體包括:

在原程序啟動時,利用java反射機(jī)制掃描帶有命令注解的接口實現(xiàn)類。

本實施例中,可以java反射機(jī)制掃描帶有命令注解的接口實現(xiàn)類,將符合規(guī)則的接口實現(xiàn)類以鍵值對的方式緩存到命令池中。

進(jìn)一步的,所述創(chuàng)建接口實現(xiàn)類的實例的步驟之后,還包括:

將接口實現(xiàn)類的實例緩存至命令池中。

本實施例中,該命令池可以緩存多個接口實現(xiàn)類的實例,形成包含有多個接口實現(xiàn)類的實例集合,以方便用戶的調(diào)用,實現(xiàn)不同的功能操作。

在12345服務(wù)熱線中,接收和處理微信事件命令的時候,例如用戶發(fā)送zhbd(賬號綁定)命令,系統(tǒng)接收到zhbn命令時,通過本發(fā)明的方案匹配zhbn命令對應(yīng)的命令注解的接口實現(xiàn)類的實例,并根據(jù)匹配成功的結(jié)果執(zhí)行賬號綁定操作,以及將執(zhí)行結(jié)果返回給用戶。后期在系統(tǒng)功能需要增加jdcx(進(jìn)度查詢)命令的時候,我們只需要增加一個接口接口實現(xiàn)類,在接口實現(xiàn)類中用注解標(biāo)注命令名為“jdcx”,通過本發(fā)明的創(chuàng)建接口實現(xiàn)類的實例方案,即可實現(xiàn)在用戶發(fā)送jdcx命令調(diào)用到該接口實現(xiàn)類執(zhí)行進(jìn)度查詢操作,并返回預(yù)期結(jié)果給用戶。

請參照圖3,本發(fā)明的實施例中,該基于java的動態(tài)加載命令的裝置,包括:

創(chuàng)建模塊10,用于創(chuàng)建接口實現(xiàn)類的實例,其中,所述接口實現(xiàn)類的實例包含有至少一命令注解;

接收模塊20,用于接收動態(tài)加載命令,所述動態(tài)加載命令中包含有命令名稱;

匹配模塊30,用于將待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解進(jìn)行匹配,

如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配成功,則調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例。

本實施例中,該通過創(chuàng)建模塊10創(chuàng)建的接口實現(xiàn)類可以包含有多個命令注解,每一命令注解相當(dāng)于命令標(biāo)識,當(dāng)接收模塊20接收到動態(tài)加載命令時,通過匹配模塊30,可以將動態(tài)加載命令與命令注解匹配,在匹配成功后可以調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例,以執(zhí)行對應(yīng)的功能操作。可以理解的,本方案中的創(chuàng)建的接口實現(xiàn)類的實例可能有多個,多個接口實現(xiàn)類的實例可能滿足用戶的不同要求,多個接口實現(xiàn)類的實例可以暫存于命令池中。上述實施例中,如果待動態(tài)加載的命令名稱與接口實現(xiàn)類的實例的命令注解匹配失敗時,則匹配失敗,并返回調(diào)用失敗的信息給用戶。

請參照圖4,在一具體的實施例中,所述創(chuàng)建模塊10,具體包括:

定義單元11,用于預(yù)先定義一命令接口類以及描述所述命令接口類的java注解類,其中,所述命令接口類包含有一引導(dǎo)程序;

實現(xiàn)單元12,用于根據(jù)該引導(dǎo)程序在原程序的接口實現(xiàn)類中實現(xiàn)命令接口類,并將java注解類對應(yīng)添加至命令接口類中,形成帶有命令注解的接口實現(xiàn)類;

掃描單元13,在原程序啟動時,用于掃描帶有命令注解的接口實現(xiàn)類;以及

創(chuàng)建單元14,用于根據(jù)帶有命令注解的接口實現(xiàn)類創(chuàng)建包含有命令注解的接口實現(xiàn)類的實例。

本實施例中,通過定義單元11可以預(yù)先定義一命令接口類以及對應(yīng)的java注解類,而后通過實現(xiàn)單元12,根據(jù)引導(dǎo)程序在原程序的實現(xiàn)類實現(xiàn)該命令接口類,并將java注解類添加至對應(yīng)的命令接口類中,得到帶有命令注解的接口實現(xiàn)類;掃描單元13,在原程序啟動掃描或者定期掃描帶有命令注解的接口實現(xiàn)類;最后,由創(chuàng)建單元14根據(jù)該帶有命令注解的接口實現(xiàn)類創(chuàng)建接口實現(xiàn)類的實例。由于java注解類包含有一個或多個命令標(biāo)識,在用戶輸入對應(yīng)的動態(tài)加載命令時,該動態(tài)加載命令的命令名稱與命令注解的命令標(biāo)識進(jìn)行匹配,在匹配成功后可以調(diào)用對應(yīng)的接口類的實例,實現(xiàn)相應(yīng)的功能,由于一個命令接口類的實例能夠解決多個功能,無需創(chuàng)建多個功能類,可以降低對象的耦合度,提高了程序的擴(kuò)展性,使得功能定制更加靈活。

在一具體的實施例中,所述掃描單元13,具體用于:

在原程序啟動時,利用java反射機(jī)制掃描帶有命令注解的接口實現(xiàn)類。

本實施例中,該掃描單元可以java反射機(jī)制掃描帶有命令注解的接口實現(xiàn)類,將符合規(guī)則的接口實現(xiàn)類以鍵值對的方式緩存到命令池中。該掃描單元可以采用java反射機(jī)制來實現(xiàn)。

進(jìn)一步的,所述創(chuàng)建模塊10,還用于:

將接口實現(xiàn)類的實例緩存至命令池中。

本實施例中,該命令池可以緩存多個接口實現(xiàn)類的實例,形成包含有多個接口實現(xiàn)類的實例集合,以方便用戶的調(diào)用,實現(xiàn)不同的功能操作。用戶通過適配器可以輸入動態(tài)加載命令,在輸入動態(tài)加載命令的命令名稱與命令注解匹配成功時,可以調(diào)用與該命令注解對應(yīng)的接口實現(xiàn)類的實例完成相應(yīng)的功能操作,并返回執(zhí)行后的結(jié)果。

以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是在本發(fā)明的發(fā)明構(gòu)思下,利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接/間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域均包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
青神县| 石棉县| 稷山县| 肇东市| 霸州市| 吴忠市| 安泽县| 遵义市| 阳江市| 靖安县| 海盐县| 昌图县| 仪征市| 皋兰县| 康乐县| 海原县| 苏尼特右旗| 肇源县| 临海市| 华容县| 呼图壁县| 栾城县| 新宾| 明水县| 黄浦区| 九龙城区| 浪卡子县| 景谷| 北碚区| 南京市| 金湖县| 库尔勒市| 大安市| 庄河市| 富锦市| 高邑县| 南召县| 黎川县| 和静县| 青川县| 泰来县|