J2EE設計模式淺談(1)
首先J2EE設計模式還在不斷的發(fā)展,我以下所說的設計模式全按上圖中的來說,一來可以給大家一個更好直觀的效果,二來我的目的也只是讓各位了解J2EE設計模式,希望可以達到一個拋磚引玉的效果。
在還沒有進入正題之前我還想說幾句,大家不要為了用design pattern而去用design pattern,最好根據(jù)自己的需求去選擇適合自己項目的design pattern。
J2EE有兩大類重要的J2EE模式,一類由Sun Java Center管理,定義15種模式,已經(jīng)在《Core J2EE Patterns》書中發(fā)表,另一類是TheServerSide.Com,這種類發(fā)表了大量的模式,最重要的見《EJB Design Patterns: Advanced Patterns,Processes and Idioms》下面我們把design pattern分層說明
1、 表示層模式,用于Web組件層
2、 業(yè)務層模式,用于業(yè)務邏輯層
3、 數(shù)據(jù)集成層模式,連接DB Or EIS
Intercepting Filter(截獲過濾)
提供請求預處理和后處理的方案,定義靈活的體系結構,可以聲明對截獲請求和響應進行過濾,在Servlet2.3中已經(jīng)實現(xiàn)了Filter功能,該模式主要用于記錄日志、看用戶有沒有LOGIN等等。
Front Controller(前端控制器)
通過中央控制器提供請求管理和處理。控制器取代通常發(fā)生在表示層的請求,從而取代模型試圖控制器(MVC ,Model View Controller)模式的控制器部分,前端控制器管理內容的讀取,導航。如上圖,可看出Front Controller是系統(tǒng)的一個入口,由他調用相應的邏輯Bean,完成相應的處理工作后,更新視圖View,在這里我還想提醒大家一下,有的應用把更新視圖(View)的工作交給了相應的邏輯Bean來完成。
View Helper(視圖幫助器)
將負責表示層的邏輯代碼與其他的業(yè)務邏輯分開,表示格式放在視圖組件中去,可能包括多個子組件,組成復雜視圖。業(yè)務邏輯代碼放在幫助器組件中。說白了就是讓我們不要在視圖(View)中寫入業(yè)務邏輯代碼,即少寫一些Scriptlet。
Composite View(復合視圖)
是從原子組件創(chuàng)建累計表示(View)的靈活方案。表示體系結構可以方便地組織基本視圖組件,使表示靈活,還可以進行其他的工作,包括個性化和定制。
Dispatcher View(派遣視圖)
類似于Service to Worker模式,是由Dispatcher組件與Front Controller和View Helper模式組合而成。它與Service-to-Worker模式不同的是,這個模式在進行視圖處理期間進行請求處理,因此更適合小型應用程序。
Service to Worker(服務/工人)
它是由Dispatcher組件與Front Controller和View Helper模式組合而成,先進行請求處理再進行視圖處理,適合用于大型應用。
由于Dispatcher View與Service-to-Worker有很多的相似之處,在此我做一下比較與說明,
1、 他們都是由表示層模式(Front Controller、View Helper)組合而成,參與者是控制器、派遣器、視圖幫助器的組合。
2、 在Service-to-Worker模式中控制器、派遣器的功能很大,除了要處理客戶請求,視圖跳轉,派遣器還要從業(yè)務層讀取數(shù)據(jù),視圖負責表示派遣器讀取數(shù)據(jù),將更多的邏輯和行為移到Front Controller、Dispatcher、View Helper中簡化視圖(View)。
3、 而在Dispatcher View模式中控制器、派遣器的作用則很小,視圖要負責從業(yè)務層讀取內容和顯示數(shù)據(jù),它將更多的邏輯和行為交給了視圖(View)使我們的視圖變的很復雜,通常要用Scriptlet或Taglib完成控制器沒有完成的任務。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。