基于組件的機制的核心組件-SimpleFramework
核心組件:
核心組件的目的就是以組件的形式來補充Simple框架沒有提供的核心功能。
框架的核心實現(xiàn)了基于過濾器的請求-響應(yīng)生命周期處理過程,以及組件架構(gòu),因此,以組件的形式實現(xiàn)Web框架的基礎(chǔ)功能,其優(yōu)勢在于:
減輕了框架核心代碼的實現(xiàn)復(fù)雜度
以組件的方式補充實現(xiàn)框架必須實現(xiàn)的部分功能
基于框架的組件體系,實現(xiàn)不同來源支撐技術(shù)和組件的可拔插
基于組件的實現(xiàn)模式,可極大地保障框架內(nèi)核的穩(wěn)定性,降低核心功能與框架內(nèi)核的耦合度,使得框架具有更好的可擴展性和可升級性
核心功能的組件實現(xiàn)模式,進一步保障了核心功能的相對獨立性和可置換性,從而提高核心功能升級的平滑性和向下兼容性
AJAX組件(ajaxRequest)
以AJAX(Asynchronous JavaScript and XML)為其“形”,以組件為其“神”,將AJAX請求(AJAX Request)封裝為組件,使得用戶無需關(guān)心AJAX的具體內(nèi)涵(諸如請求、XML數(shù)據(jù)等),將其如同普通組件一樣引用,再者結(jié)合其他組件的組合應(yīng)用,極大地簡化了AJAX應(yīng)用的開發(fā)過程,減少了AJAX應(yīng)用的開發(fā)難度,降低了AJAX應(yīng)用的技術(shù)門檻,從而縮短應(yīng)用開發(fā)周期、節(jié)約開發(fā)成本
其次,組件化的AJAX引用,掩蔽了AJAX的技術(shù)復(fù)雜性,提高了復(fù)用性,可實現(xiàn)AJAX應(yīng)用的平民化,使得Web1.0向Web2.0的AJAX應(yīng)用過渡更平滑、順暢;再次,可以利用AJAX請求的組件特性,升級或改造現(xiàn)有的常規(guī)非組件化AJAX應(yīng)用,可極大地減少原有系統(tǒng)的代碼量,進一步提高原有系統(tǒng)的響應(yīng)能力、穩(wěn)定性、易用性和交互性,并提升用戶體驗度。
驗證組件(validation)
以“驗證”為其“行”,以組件為其“神”,將驗證(validation)封裝為組件:
用戶無需關(guān)心驗證的具體細節(jié),將校驗定義為組件及其屬性(諸如驗證的類型、規(guī)則、作用對象集等),而非(客戶端或服務(wù)器端)代碼,極大地簡化了Web校驗的實現(xiàn)過程,減少了難度,降低了門檻,從而達成縮短開發(fā)周期、節(jié)約開發(fā)成本之目的
驗證的組件化,掩蔽了驗證的技術(shù)復(fù)雜性,提高了復(fù)用性,可實現(xiàn)驗證的配置化、通用化
可利用驗證的組件特性,升級或改造現(xiàn)有的常規(guī)非組件化應(yīng)用的驗證實現(xiàn),可極大地減少原有系統(tǒng)的代碼量,進一步提高原有系統(tǒng)的穩(wěn)定性、易用性和可用性
驗證的組件化,可實現(xiàn)Web應(yīng)用的客戶端驗證和服務(wù)器端驗證的統(tǒng)一:基于統(tǒng)一的驗證組件規(guī)則設(shè)置,通過類型來選擇客戶端或服務(wù)器端驗證,而功能由相應(yīng)的組件完成
組件化的驗證實現(xiàn),使得驗證具有良好的可擴展性
提交組件(submit)
以“提交”為其“行”,以組件為其“神”,將提交(submit)封裝為組件:
用戶無需關(guān)心提交的具體細節(jié),將提交定義為組件及其屬性(提交的類型和業(yè)務(wù)處理類等),而非,簡化了Web應(yīng)用“提交”的實現(xiàn)過程,減少了難度,降低了門檻,從而達成縮短開發(fā)周期、節(jié)約開發(fā)成本之目的
提交的組件化,掩蔽了提交的技術(shù)復(fù)雜性,提高了復(fù)用性
了利用提交的組件特性,升級或改造現(xiàn)有的常規(guī)非組件化應(yīng)用的提交實現(xiàn),可極大地減少原有系統(tǒng)的代碼量,進一步提高原有系統(tǒng)的穩(wěn)定性、易用性和可用性
提交的組件化,可清晰地區(qū)分AJAX和常規(guī)兩類提交,進一步突出了提交的業(yè)務(wù)相關(guān)性
組件化的提交實現(xiàn),使得提交具有良好的可擴展性和可管理性
基本組件:
SimpleFramework的基本組件以頁面顯示組件為主,成體系,可配套,幾乎覆蓋了WEB應(yīng)用開發(fā)的方方面面。 由于具有開放的組件體系結(jié)構(gòu),因此具備如下特點:
- 基本組件具有很好的可擴展性?;陂_放的組件體系架構(gòu)和標準的組件規(guī)范,可進一步擴展基本組件,以滿足實際Web應(yīng)用開發(fā)的實際需要
- 基本組件具有很好的模型適配性。基本組件數(shù)據(jù)來源基于接口設(shè)計及實現(xiàn),因此可滿足同一(數(shù)據(jù))模型不同展現(xiàn)形式的需要,以及同一組件可滿足不同來源數(shù)據(jù)的展現(xiàn)需求
- 基本組件具有很好的資源整合性、可置換性和多態(tài)性?;赟impelFramework的組件規(guī)范,基本組件可整合不同的組件資源(諸如多文件上傳組件即整合自SWFUpload),也使得基本組件具有可替換性,亦即可用新的組件資源替換已有的組件實現(xiàn);同時同一基本組件可基于不同的組件(資源)存在多種實現(xiàn),呈現(xiàn)多種“形態(tài)”(諸如統(tǒng)一組件可以基于Javscript和Flash來實現(xiàn))
- 基本組件具有很好的可組合性。由于基本組件基于同一組件體系設(shè)計和實現(xiàn),具有定義良好的組件規(guī)范,充分體現(xiàn)了組件的應(yīng)用域和組件屬性的非交叉性和可繼承性,以及組件資源(提供者)的接口特性,使得基本組件具有很好的可組合性
- 基本組件具有友好的可用性。由于基本組件大都提供了缺省的處理類(Handle Class),所以基本組件具有友好的可用性
業(yè)務(wù)組件:
業(yè)務(wù)組件就是可以獨立滿足某類業(yè)務(wù)需求或獨立完成某一完整應(yīng)用功能的組件,屬于復(fù)合組件的范疇,換言之,就是基于數(shù)個基本組件組合完成某一特定的應(yīng)用功能,以“完整應(yīng)用或特定功能”為其“行”,以組件為其“神”,以組件及其屬性完整呈現(xiàn)“特定應(yīng)用或特定功能”,諸如:評論、投票,或論壇等。因此,其特性如下:
- 業(yè)務(wù)組件具有完整的“應(yīng)用”或“功能”特性。業(yè)務(wù)組件是“組件即應(yīng)用,應(yīng)用即組件”的真實體現(xiàn)
- 業(yè)務(wù)組件具有完整的組件特性。業(yè)務(wù)組件可以組件的形式應(yīng)用于Web應(yīng)用中,具有完整的組件特性
- 業(yè)務(wù)組件具有復(fù)合性。業(yè)務(wù)組件本身就是基本組件與實際應(yīng)用或功能整合后的“復(fù)合組件”,因此業(yè)務(wù)組件可以再次與其他組件“組合”,形成新的業(yè)務(wù)組件,即具有可復(fù)合性
- 業(yè)務(wù)組件具有可積累性。業(yè)務(wù)就是組件和業(yè)務(wù)同步積累的成果,因此伴隨業(yè)務(wù)需求的發(fā)展變化,可實現(xiàn)業(yè)務(wù)相關(guān)組件同步的成長,即業(yè)務(wù)組件既有可積累性
- 業(yè)務(wù)組件具有隨需應(yīng)變的能力。由于業(yè)務(wù)組件實質(zhì)就是基本組件的組合應(yīng)用,因此隨著基本組件資源的成長、變化以及開放的組件體系結(jié)構(gòu)和基于接口的實現(xiàn)模式,業(yè)務(wù)組件具備隨需應(yīng)用的能力
- 業(yè)務(wù)組件具有業(yè)務(wù)可擴展性和客戶化特性。由于業(yè)務(wù)組件的“業(yè)務(wù)”相關(guān)屬性及其行由與之相關(guān)的業(yè)務(wù)處理類(Handle Class)提供,因此業(yè)務(wù)組件具有業(yè)務(wù)可擴展性,并可以定制特定應(yīng)用領(lǐng)域的“特殊”的組件屬性或組件行為,即具有客戶化特性