專利名稱:一種基于組合模式靈活可配置的表單控制器架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于表單開發(fā)工具技術(shù)領(lǐng)域,涉及一種基于組合模式靈活可配置的表單控制器架構(gòu)。
背景技術(shù):
計算機(jī)自出現(xiàn)以來,軟件開發(fā)技術(shù)經(jīng)歷了從匯編語言、面向過程、到面向?qū)ο?、再到現(xiàn)在流行的面向構(gòu)件、面向服務(wù)開發(fā)。其中,面向構(gòu)件開發(fā)是九十年代初提出的一種新的軟件開發(fā)方式,它是在一定構(gòu)件模型的支持下,復(fù)用構(gòu)件庫中的一個或多個軟件構(gòu)件,通過組合手段高效率、高質(zhì)量地構(gòu)造應(yīng)用軟件系統(tǒng)的過程。軟件構(gòu)件相當(dāng)于工業(yè)流水線生產(chǎn)上的“標(biāo)準(zhǔn)件”,其最大特點(diǎn)就是可以通過不斷復(fù)用,有效的縮減開發(fā)周期、降低成本。隨著以分布式對象為基礎(chǔ)的構(gòu)件實(shí)現(xiàn)技術(shù)日趨成熟,它已經(jīng)成為現(xiàn)今軟件復(fù)用技術(shù)的研究熱點(diǎn),被認(rèn)為是最具潛力的軟件工程發(fā)展方向之一。表單控制器是基于構(gòu)件化的思想,針對可視化自定義表單開發(fā)工具的需要,開發(fā)出的一套能最大限度的適應(yīng)各種自定義表單復(fù)雜業(yè)務(wù)場景的內(nèi)置構(gòu)件庫。自定義表單控制器的開發(fā)及配置,是基于可視化表單開發(fā)工具的開發(fā)過程中的最重要、最核心、也是工作量最大的步驟。因此,內(nèi)置的表單控制器是否能更好的適應(yīng)業(yè)務(wù)需求的多樣性、是否有較高的直接使用率以減少自定義開發(fā)的工作量、并提高開發(fā)效率和用戶體驗(yàn),就成了制約自定義表單開發(fā)效率的重中之重。目前,很多內(nèi)置表單控制器,都存在著諸多的嚴(yán)重不足,無法滿足用戶對易用性、可擴(kuò)展性和開發(fā)效率的需求,主要缺陷如下
I.表單控制器的架構(gòu)不合理,無法靈活的匹配各種復(fù)雜的界面及其交互;
2.表單控制器的可復(fù)用性、可擴(kuò)展性不足;
3.表單控制器的積累缺乏支撐和指導(dǎo);
4.自定義表單控制器的開發(fā)、調(diào)試效率不高。故,針對上述現(xiàn)有技術(shù)在表單控制器方面存在的缺陷,實(shí)有必要進(jìn)行研究,以提供一種基于組合模式靈活可配置的表單控制器架構(gòu),為可視化的表單開發(fā)工具,提供一套具有高直接使用率、高可復(fù)用能力、高可擴(kuò)展性和對復(fù)雜業(yè)務(wù)場景的高適應(yīng)性的內(nèi)置表單控制器,從而降低業(yè)務(wù)開發(fā)人員的編碼工作量和開發(fā)成本,提高其開發(fā)效率和軟件交付質(zhì)量。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的在于提供一種基于組合模式靈活可配置的表單控制器架構(gòu),為可視化的表單開發(fā)工具提供一套具有高直接使用率、高可復(fù)用能力、高可擴(kuò)展性和對復(fù)雜業(yè)務(wù)場景的高適應(yīng)性的內(nèi)置表單控制器。從而降低業(yè)務(wù)開發(fā)人員的編碼工作量和開發(fā)成本,提高其開發(fā)效率和軟件交付質(zhì)量。為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為
一種基于組合模式靈活可配置的表單控制器架構(gòu),包括有表單模型控制器、表單元素控制器、以及表單控制器;其整體上采用合成模式單一表單控制器組合表單模型控制器、和表單元素控制器,并協(xié)調(diào)其進(jìn)行分步操作,完成對整個表單界面和后臺數(shù)據(jù)的控制。進(jìn)一步地,所述表單控制器又分為單一表單控制器、組合表單控制器,其都繼承自抽象表單控制器。進(jìn)一步地,所述組合表單控制器由多個單一表單控制組合而成,組合控制器本身也可以再被組合,以便根據(jù)界面的需要組裝出可以適配當(dāng)前界面的特定控制器。進(jìn)一步地,所述表單元素控制器、表單模型控制器組合成基礎(chǔ)控制器,基礎(chǔ)控制器組合成組合控制器;而基礎(chǔ)控制器、組合控制器,再組合成更復(fù)雜的組合控制器。進(jìn)一步地,所述表單模型控制器用于負(fù)責(zé)數(shù)據(jù)的處理,而所述表單元素控制器用于負(fù)責(zé)對界面控件的處理。進(jìn)一步地,所述表單控制器架構(gòu)面向接口編程,使被組合部分通過配置的方式能夠方便的替換為不同的實(shí)現(xiàn),所述替換包括有被組裝的表單元素控制器實(shí)現(xiàn)類的替換、被組裝的表單模型控制器實(shí)現(xiàn)類的替換、被組裝的基礎(chǔ)控制器實(shí)現(xiàn)類的替換、以及被組裝的組合控制器實(shí)現(xiàn)類的替換
本發(fā)明架構(gòu)采用靈活的組裝模式,可智能化的匹配表單的界面結(jié)構(gòu);其基于可配置擴(kuò)展屬性的方式,可以按需配置表單控制器內(nèi)部的運(yùn)行邏輯,以更好的適應(yīng)用戶特定的業(yè)務(wù)場景;而以組合的方式代替繼承、以配置的方式代替硬編碼的架構(gòu)設(shè)計,使得該架構(gòu)、以及基于該架構(gòu)開發(fā)出的最終產(chǎn)品,都具有了很高的可復(fù)用能力、可擴(kuò)展性、對復(fù)雜業(yè)務(wù)場景的適應(yīng)性、以及軟件交付質(zhì)量。
圖I是本發(fā)明表單控制器架構(gòu)的整體示意 圖2是本發(fā)明表單控制器架構(gòu)的組裝關(guān)系及擴(kuò)展屬性配置界面示意圖;
圖3是本發(fā)明表單控制器架構(gòu)的事件框架結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參照圖I所示,本發(fā)明基于組合模式靈活可配置的表單控制器架構(gòu)包括有表單模型控制器(Model)、表單兀素控制器(Element)、以及表單控制器(Controller);其中,表單控制器又分為單一表單控制器、組合表單控制器,其都繼承自抽象表單控制器。其中,表單模型控制器負(fù)責(zé)數(shù)據(jù)的處理;表單元素控制器負(fù)責(zé)對界面控件的處理;表單控制器總體上采用合成模式單一表單控制器組合表單模型控制器和表單元素控制器,并協(xié)調(diào)其進(jìn)行分步操作,完成對整個表單界面和后臺數(shù)據(jù)的控制;組合表單控制器由多個單一表單控制組合而成,組合控制器本身也可以再被組合,這樣就可以根據(jù)界面的需要,靈活便捷的組裝出可以適配當(dāng)前界面的特定控制器。具體地,表單元素控制器(Element)、表單模型控制器(Model)組合成基礎(chǔ)控制器,基礎(chǔ)控制器組合成組合控制器;而基礎(chǔ)控制器、組合控制器,再組合成更復(fù)雜的組合控制器。在總體架構(gòu)上,采用合成模式,使用組合的方式實(shí)現(xiàn)功能和代碼的復(fù)用,在架構(gòu)層提供了對高可擴(kuò)展性的支持。其表單界面是基于組合的模式拖拽出來的,所以,只有基于組合模式的表單控制器,才能對其進(jìn)行精準(zhǔn)的控制。也只有通過組裝,才能合零為整,用簡單的零部件通過組裝對復(fù)雜的業(yè)務(wù)場景進(jìn)行匹配。本發(fā)明基于組合模式靈活可配置的表單控制器架構(gòu)面向接口編程,使被組合部分通過配置的方式能夠方便的替換為不同的實(shí)現(xiàn)。這些替換包括有
被組裝的表單元素控制器(Element)實(shí)現(xiàn)類的替換、被組裝的表單模型控制器(Model)實(shí)現(xiàn)類的替換、被組裝的基礎(chǔ)控制器實(shí)現(xiàn)類的替換、以及被組裝的組合控制器實(shí)現(xiàn)類的替換。在類的劃分上,其按照功能的內(nèi)聚度進(jìn)行拆分,盡量使每一個類型做到內(nèi)聚度高、功能職責(zé)單一。本發(fā)明提供調(diào)用前、調(diào)用中、調(diào)用后的完備擴(kuò)展方法(Before、On、After),為子類提供了完備的編碼框架,實(shí)現(xiàn)了方法的細(xì)分和代碼邏輯的靈活擴(kuò)展。其將容易變化的部分提取成擴(kuò)展屬性,使其可以在表單設(shè)計時根據(jù)業(yè)務(wù)需要進(jìn)行靈活的配置。通過擴(kuò)展屬性將變化點(diǎn)提取出來進(jìn)行單獨(dú)封裝,并可以在業(yè)務(wù)開發(fā)期進(jìn)行配置,使其可以根據(jù)特定業(yè)務(wù)邏輯的需要,在業(yè)務(wù)開發(fā)時通過修改配置的方式,達(dá)到動態(tài)調(diào)整表單控制器內(nèi)部執(zhí)行邏輯的目的。另外,本發(fā)明提供靈活的事件擴(kuò)展機(jī)制,并在業(yè)務(wù)方法中預(yù)置了完備的事件觸發(fā)點(diǎn)。使得業(yè)務(wù)開發(fā)人員,可以根據(jù)特定的業(yè)務(wù)場景,通過事件的方式對表單控制器的處理邏輯進(jìn)行較大的動態(tài)擴(kuò)展。擴(kuò)展屬性的方式只是提供了細(xì)節(jié)的擴(kuò)展方式,其只是對內(nèi)部已經(jīng)識別的業(yè)務(wù)邏輯的細(xì)節(jié)進(jìn)行控制。而事件的方式可以達(dá)到對業(yè)務(wù)邏輯的較大擴(kuò)展,可以根據(jù)業(yè)務(wù)需要,擴(kuò)展出非常復(fù)雜的業(yè)務(wù)邏輯。請參照圖2所示,其為本發(fā)明的組裝關(guān)系及擴(kuò)展屬性配置界面示意圖,本發(fā)明采用面向接口編程的方式,并通過擴(kuò)展屬性將變化點(diǎn)提取出來進(jìn)行單獨(dú)封裝。使得新的表單控制器,通過一定的配置就可以在開發(fā)期修改構(gòu)件執(zhí)行的業(yè)務(wù)邏輯。按照封裝變化的原貝U,將容易變化的部分提取成擴(kuò)展屬性,使其可以在表單設(shè)計時根據(jù)業(yè)務(wù)需要進(jìn)行靈活的配置。如圖2所示,可以清晰地看出該表單控制器的組裝結(jié)構(gòu),以及各個組裝節(jié)點(diǎn)的詳細(xì)配置。其中,右上角的“實(shí)現(xiàn)”展示的是按照面向接口編程理念,進(jìn)行實(shí)現(xiàn)類自定義配置的示例;而右下角展示的是按照封裝變化的原則,對提取出的變化點(diǎn)擴(kuò)展屬性進(jìn)行配置的實(shí)例,用戶設(shè)計期可以對定義好的擴(kuò)展屬性的值進(jìn)行自定義配置,這樣即可達(dá)到在設(shè)計期根據(jù)業(yè)務(wù)需要修改系統(tǒng)運(yùn)行時業(yè)務(wù)邏輯的目的。請參照圖3所示,其為本發(fā)明的事件框架結(jié)構(gòu)示意圖,本發(fā)明提供了一套基于觀察者模式的事件機(jī)制,可以允許業(yè)務(wù)開發(fā)人員基于配置實(shí)現(xiàn)業(yè)務(wù)邏輯的動態(tài)擴(kuò)展。其中,每個表單都持有一個特有的表單上下文實(shí)例,后者又持有一個抽象的事件處理器,以便于在控制器中觸發(fā)特定的事件。事件處理器持有事件管理器進(jìn)行事件配置的存取、事件監(jiān)聽器的維護(hù)等。本發(fā)明基于模板方法模式,新表單控制器的業(yè)務(wù)方法都提供調(diào)用前、調(diào)用中、調(diào)用后的完備擴(kuò)展方法(Before、0n、After),以及相應(yīng)的事件觸發(fā)點(diǎn)。示例代碼如下所示 III <summary)
III重新加載數(shù)據(jù)
Ill </summary)
public virtual void Reload(){
this. BeforeReload() ; //執(zhí)行前的校驗(yàn)和處理 if (this. CompContext. IsActionCanceled == true) return;
this. CompContext. EventBroker. FireEvent (this, FormEvent.BeforeReload) ;// 事件觸發(fā)
this. OnReload() ; //核心代碼邏輯 if (this. CompContext. IsActionCanceled == true) return;
this. CompContext.EventBroker. FireEvent(this, FormEvent.AfterReload) ;// 事件觸發(fā)
this. AfterReload() ;//執(zhí)行后的處理與掃尾工作
}
基于此模板方式,所有的子類都要遵循該方式編寫具體的BeforeReload、OnReload.AfterReload 方法。本發(fā)明架構(gòu)釆用靈活的組裝模式,可智能化的匹配表單的界面結(jié)構(gòu);其基于可配置擴(kuò)展屬性的方式,可以按需配置表單控制器內(nèi)部的運(yùn)行邏輯,以更好的適應(yīng)用戶特定的業(yè)務(wù)場景。而以組合的方式代替繼承、以配置的方式代替硬編碼的架構(gòu)設(shè)計,使得該架構(gòu)、以及基于該架構(gòu)開發(fā)出的最終產(chǎn)品,都具有了很高的可復(fù)用能力、可擴(kuò)展性、對復(fù)雜業(yè)務(wù)場景的適應(yīng)性、以及軟件交付質(zhì)量。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于組合模式靈活可配置的表單控制器架構(gòu),其特征在于,包括有表單模型控制器、表單元素控制器、以及表單控制器;其整體上采用合成模式單一表單控制器組合表單模型控制器和表單元素控制器,并協(xié)調(diào)其進(jìn)行分步操作,完成對整個表單界面和后臺數(shù)據(jù)的控制。
2.如權(quán)利要求I所述基于組合模式靈活可配置的表單控制器架構(gòu),其特征在于所述表單控制器又分為單一表單控制器、組合表單控制器,其都繼承自抽象表單控制器。
3.如權(quán)利要求2所述基于組合模式靈活可配置的表單控制器架構(gòu),其特征在于所述組合表單控制器由多個單一表單控制組合而成,組合控制器本身也可以再被組合,以便根據(jù)界面的需要組裝出可以適配當(dāng)前界面的特定控制器。
4.如權(quán)利要求3所述基于組合模式靈活可配置的表單控制器架構(gòu),其特征在于所述表單元素控制器、表單模型控制器組合成基礎(chǔ)控制器,基礎(chǔ)控制器組合成組合控制器;而基礎(chǔ)控制器、組合控制器,再組合成更復(fù)雜的組合控制器。
5.如權(quán)利要求4所述基于組合模式靈活可配置的表單控制器架構(gòu),其特征在于所述表單模型控制器用于負(fù)責(zé)數(shù)據(jù)的處理,而所述表單元素控制器用于負(fù)責(zé)對界面控件的處理。
6.如權(quán)利要求5所述基于組合模式靈活可配置的表單控制器架構(gòu),其特征在于所述表單控制器架構(gòu)面向接口編程,使被組合部分通過配置的方式能夠方便的替換為不同的實(shí)現(xiàn),所述替換包括有被組裝的表單元素控制器實(shí)現(xiàn)類的替換、被組裝的表單模型控制器實(shí)現(xiàn)類的替換、被組裝的基礎(chǔ)控制器實(shí)現(xiàn)類的替換、以及被組裝的組合控制器實(shí)現(xiàn)類的替換。
全文摘要
本發(fā)明公開了一種基于組合模式靈活可配置的表單控制器架構(gòu),包括有表單模型控制器、表單元素控制器、以及表單控制器;其整體上采用合成模式單一表單控制器組合表單模型控制器和表單元素控制器,并協(xié)調(diào)其進(jìn)行分步操作,完成對整個表單界面和后臺數(shù)據(jù)的控制。本發(fā)明架構(gòu)采用靈活的組裝模式,可智能化的匹配表單的界面結(jié)構(gòu);其基于可配置擴(kuò)展屬性的方式,可以按需配置表單控制器內(nèi)部的運(yùn)行邏輯,以更好的適應(yīng)用戶特定的業(yè)務(wù)場景;而以組合的方式代替繼承、以配置的方式代替硬編碼的架構(gòu)設(shè)計,使得該架構(gòu)、以及基于該架構(gòu)開發(fā)出的最終產(chǎn)品,都具有了很高的可復(fù)用能力、可擴(kuò)展性、對復(fù)雜業(yè)務(wù)場景的適應(yīng)性、以及軟件交付質(zhì)量。
文檔編號G06F9/44GK102637131SQ20121007551
公開日2012年8月15日 申請日期2012年3月21日 優(yōu)先權(quán)日2012年3月21日
發(fā)明者戴海宏, 王興山 申請人:浪潮集團(tuán)山東通用軟件有限公司