一種基于責任鏈模式的模版組件化生成代碼的方法
【專利摘要】本發(fā)明公開了一種基于責任鏈模式的模版組件化生成代碼的方法,其通過代碼生成來解決軟件項目開發(fā)中的大量重復工作,使得程序員只需關注不同需求的業(yè)務邏輯,而且本發(fā)明采用了一種基于責任鏈的模版組件生成方式,既可采用內置的代碼封裝方式,也可采用自定義模版的代碼封裝方式,同時也支持自由組合生成鏈的方式生成特定模塊的相關代碼,同時兼顧了簡易性和靈活性。通過本發(fā)明能夠滿足不同需求,提供組件定件化的方案,從而實現了項目快速開發(fā),減少重復工作的目的。
【專利說明】一種基于責任鏈模式的模版組件化生成代碼的方法
【技術領域】
[0001]本發(fā)明涉及代碼生成【技術領域】,尤其涉及一種基于責任鏈模式的模版組件化生成代碼的方法。
【背景技術】
[0002]在啟動一個新項目的時候,需要設計好項目的體系架構,并重新編寫大量的公共代碼,如果存在舊項目且舊項目的體系架構滿足當前需求,則可將公共代碼提取出,修改其中由于項目不同導致的特異性代碼,但仍會存在較多的重復性工作以及花費一定量的調試時間。
[0003]專利號為200710002787.5的發(fā)明專利,公開了一種持久層生成方法及裝置,用于簡單便捷的實現數據的持久化處理。所述方法包括:獲取數據庫表結構參數,數據庫表之間的關聯關系配置參數以及代碼生成配置參數;根據所述獲取到的參數生成持久層代碼;將所述持久層代碼封裝成為持久層。所述裝置包括:獲取單元,生成單元以及封裝單元;所述獲取單元用于獲取數據庫表結構參數,數據庫表之間的關聯關系配置參數以及代碼生成配置參數,并將獲取到的參數發(fā)送至生成單元;所述生成單元用于根據所述獲取到的參數生成持久層代碼,并將生成的持久層代碼發(fā)送至封裝單元;所述封裝單元用于將接收到的持久層代碼封裝成為持久層。本發(fā)明可以有效地簡化數據持久化的過程。該發(fā)明只生成了持久層代碼,沒有解決其他層的公共代碼編寫問題,而且每個公司都有自已的技術體系,有自己所采用的框架,以及封裝方式,這種方式生成的代碼并不一定符合所有項目的開發(fā)需求。
[0004]另外,申請?zhí)枮?01310322858.5的發(fā)明專利公開了一種代碼生成方法及系統(tǒng),所述系統(tǒng)包括:靜態(tài)表單讀取模塊、Java服務器頁面(JSP)生成模塊、數據持久層生成模塊、控制器生成模塊和配置文件生成模塊;所述JSP生成模塊生成視圖層JSP文件;所述數據持久層生成模塊生成簡單JAVA對象(POJO)類文件、以及數據訪問對象(DAO)類文件;所述控制器生成模塊,生成控制器Java類文件;所述配置文件生成模塊生成可擴展標記語言(XML)配置文件。采用本發(fā)明的技術方案,能夠高效地根據不同待開發(fā)軟件的具體框架生成業(yè)務代碼,并降低開發(fā)成本。該技術生成了是基于hibernate和struts2的框架生成業(yè)務代碼,靈活性不足,每個公司都有自已的技術體系,有自己所采用的框架,以及封裝方式,這種方式生成的代碼并不一定符合所有項目的開發(fā)需求。
【發(fā)明內容】
[0005]本發(fā)明的目的是為了克服現有技術的缺陷,提供一種基于責任鏈模式的模版組件化生成代碼的方法,該方法包括以下步驟:
[0006]I)設計好項目的數據表結構;
[0007]2)通過配置文件,配置好數據庫的連接;
[0008]3)配置好其他可變配置,不需配置則采用默認參數;
[0009]4)當有定制需求時,修改模版文件和組件代碼,自定義組件責任鏈;[0010]5)在運行期中,采用智能分析,自動跳過無效的組件;
[0011]6)項目代碼生成完畢,啟動生成的項目,進行業(yè)務流程測試;
[0012]本發(fā)明技術方案帶來的有益效果:
[0013]本發(fā)明技術方案能夠滿足不同項目開發(fā)的開發(fā)需求,快速生成公共代碼,在不降低開發(fā)質量的同時減少項目的開發(fā)周期。同時通過基于責任鏈模式的模版組件化生成代碼方法,以各類模版加上業(yè)務代碼形成的組件具有高可讀性、高內聚低耦合的特性,定制容易,靈活,可滿足不同項目的前期代碼生成需求。
【專利附圖】
【附圖說明】
[0014]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
[0015]圖1是本發(fā)明中一種基于責任鏈模式的模版組件化生成代碼的方法流程圖?!揪唧w實施方式】
[0016]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0017]本發(fā)明為了解決現有技術中編碼新項目,需要大量重新編寫公共代碼以及或者對舊有項目的公共代碼進行提取后需進行多次調試測試的缺點或不足,采用了自動產生公共代碼,并為了滿足不同需求,提供組件定件化的方案,從而實現了項目快速開發(fā),減少重復工作的目的。
[0018]如圖1所示為本發(fā)明的方法流程圖,其實現步驟如下:
[0019]1.設計好項目的數據表結構;
[0020]2.通過配置文件,配置好數據庫的連接,本發(fā)明內置了除了數據庫連接之外的所有默認參數,保證了本發(fā)明的簡易使用性;
[0021]3.配置好其他可變配置,不配置則采用默認參數,如有特殊需求,則可配置項目代碼生成的相關參數,如生成路徑,采用的框架等;
[0022]4.當有定制需求時,修改模版文件和組件代碼,自定義組件責任鏈,由于本發(fā)明采用了基于責任鏈的模版組件式生成方式,每個組件生成方式都可靈活定制,例如:不需要持久層的代碼,可以將該組件從責任鏈中剔除出去,或者持久層采用的是別的框架的封裝方式,則可更新相對應的模版文件或自定義一個組件,并將該組件添加到責任鏈中,高度的可定制性保證了本發(fā)明的靈活性;
[0023]5.在運行期中,采用智能分析,自動跳過無效的組件,例如:已經存在靜態(tài)頁面,本發(fā)明會掃描并生成相對應的控件層類,javascript文件,以及相應的頁面跳轉代碼,否則會跳過相應組件的生成,避免了大量且繁瑣的配置文件。
[0024]6.項目代碼生成完畢,啟動生成的項目,進行業(yè)務流程測試。[0025]本發(fā)明通過代碼生成來解決軟件項目開發(fā)中的大量重復工作,使得程序員只需關注不同需求的業(yè)務邏輯,而且本發(fā)明采用了一種基于責任鏈的模版組件生成方式,既可采用內置的代碼封裝方式,也可采用自定義模版的代碼封裝方式,同時也支持自由組合生成鏈的方式生成特定模塊的相關代碼,同時兼顧了簡易性和靈活性。
[0026]此外,本發(fā)明還能夠采用模版引擎技術將常用公共代碼形成模版,把一些不同項目經常變化的的參數配置在配置文件中,然后通過配置各類參數來生成代碼。缺點是配置繁瑣,且只能適用于相同技術體系架構的項目。
[0027]以上對本發(fā)明實施例所提供的一種基于責任鏈模式的模版組件化生成代碼的方法進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
【權利要求】
1.一種基于責任鏈模式的模版組件化生成代碼的方法,其特征在于,該方法包括以下步驟: 1)設計好項目的數據表結構; 2)通過配置文件,配置好數據庫的連接; 3)配置好其他可變配置,不需配置則采用默認參數; 4)當有定制需求時,修改模版文件和組件代碼,自定義組件責任鏈; 5)在運行期中,采用智能分析,自動跳過無效的組件; 6 )項目代碼生成完畢,啟動生成的項目,進行業(yè)務流程測試。
2.根據權利要求1所述的方法,其特征在于,本發(fā)明內置了除了數據庫連接之外的所有默認參數,保證了本發(fā)明的簡易使用性。
3.根據權利要求1所述的方法,其特征在于,有特殊需求時,則可配置項目代碼生成的相關參數,例如生成路徑,采用的框架。
4.根據權利要求1所述的方法,其特征在于,本發(fā)明采用了基于責任鏈的模版組件式生成方式,每個組件生成方式都能靈活定制,不需要持久層的代碼,將該組件從責任鏈中剔除出去,或者持久層采用的是其他的框架的封裝方式,則可更新相對應的模版文件或自定義一個組件,并將該組件添加到責任鏈中,高度的可定制性保證了本發(fā)明的靈活性。
5.根據權利要求1所述的方法,其特征在于,在步驟5)中,如果已經存在靜態(tài)頁面,本發(fā)明會掃描并生成相對應的控件層類,javascript文件以及相應的頁面跳轉代碼,否則會跳過相應組件的生成,避免了大量且繁瑣的配置文件。
6.根據權利要求1所述的方法,其特征在于,本發(fā)明既能夠采用內置的代碼封裝方式,也能夠采用自定義模版的代碼封裝方式,同時也支持自由組合生成鏈的方式生成特定模塊的相關代碼。
7.根據權利要求1所述的方法,其特征在于,本發(fā)明還能夠采用模版引擎技術將常用公共代碼形成模版,把一些不同項目經常變化的的參數配置在配置文件中,然后通過配置各類參數來生成代碼。
【文檔編號】G06F17/30GK103605526SQ201310633921
【公開日】2014年2月26日 申請日期:2013年11月28日 優(yōu)先權日:2013年11月28日
【發(fā)明者】柯宗貴, 楊育斌, 林再賢 申請人:藍盾信息安全技術股份有限公司