版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1623122
J2EE Architecture(17)
1、MVC架構
MVC(Model-View—Control,模型-視圖-控制器)架構,是最早出現的一種架構,用于實作傳統架構,如客戶機/伺服器、分布和Internet架構。這個架構分開了表示邏輯、業務邏輯和資料。
1)MVC模式的“模型”實質上表示資料或資訊,以及用來通路和修改資料的業務邏輯。
2)每當資料發生更改時,模型将通知“視圖”,這稱為“更改通知”,是一個基于事件的通信,允許視圖查詢模型的狀态更改,即“狀态查詢”。更改還允許“控制器”通過應用程式功能封裝通路資訊,這稱為“狀态更改”。
3)“視圖”用于顯示模型的資料。視圖與控制器通信,以發送“使用者意圖”,這是一個基于事件的通信,當使用者單擊按鈕或按下Enter鍵時,将發生通信。
4)“控制器”用于提供應用程式行為。控制器在了解使用者意圖後執行操作。控制器将:
(1)選擇不同資料視圖;
(2)在模型中執行操作,以更改資料。
2、Model 1 架構
Servlet、Servlet Filter、HTML和JSP是表示部署的元件。利用這些元件實作的MVC架構稱為“MVC Model 1”。
Servlet、JSP元件擔當了“模型”、“視圖”、“控制器”角色,并用适當方法傳遞Web應用程式。其中,JSP提供視圖,Servlet提供模型和控制器;在更小的Web應用程式中,由于所需元件很少,JSP元件可獨當三個角色。
由于業務需求經常出現更改,MVC Model 1 缺少足夠的靈活性。
在引入新功能或更改現有功能時,将需要引入新的JSP元件,或修改現有的JSP元件,并相應更改結構。在經常更改架構時,會導緻應用程式脆弱不堪,常出現中斷。
中斷的起因是:JSP的“控制器”和“模型”功能十分有限,Servlet也隻是勉強提供“模型”功能。還有一個問題:JSP将截獲用戶端發出的初始調用,這是一種不可靠的做法。
3、Model 2 架構
表示層包含Servlet、Servlet Filter、HTML和JSP,而業務層包含業務元件,主要是企業Bean。在MVC Model 2 架構中,業務層元件擔當“模型”角色。
在這種架構中,Servlet和JSP元件分别擔當“控制器”和“視圖”角色,并恰如其分的傳遞Web應用程式。
Model 2 架構有效地劃分了考慮事項,能得心應手地支援大型企業應用程式。
4、Web層最佳實踐
表示出的元件需要針對各個請求執行大量任務,如身份驗證、授權、登陸和過濾等任務:
1)必須合理評估請求,并轉發給業務層元件;
2)還要評估業務層元件的響應,對響應做适當的格式處理,再将響應轉發給用戶端。
表示層問題的一些常見原因如下:
1)“視圖”元件視圖執行“控制器”的活動;
2)“控制器”元件試圖執行很多與“視圖”元件相關的活動,成了控制與視圖邏輯的大雜燴;
3)将業務邏輯和資料向客戶層公開;
4)将表示邏輯和資料向業務層公開;
5)缺乏協調有序的控制活動。
5、控制器元件
Servlet最适于執行控制活動。應将控制器元件中的前端元件作為到達Web應用程式所有請求的“單個輸入點”。
前端元件接下來應合理轉換HTTP請求,并将請求發送給表示元件,或其它控制器元件。
單點輸入元件能確定安全,維護應用程式狀态,并確定使用表示元件時的統一表示效果。
6、表示元件
JSP元件最适于執行表示任務,如果響應内容類型被設定為HTML或XML,表現得更為明顯。
這些元件應采用子產品化方式,并支援重用,因為Web應用程式或企業應用程式的各個部分可能查找JSP的表示方面。
這些表示元件應當有助于顯示統一的企業應用程式外觀。
7、Web層的設計模式
GoF認為,模式是用于指定上下文,用來解決問題的方案。
企業應用程式的一些重要模式如下:
架構模式——适用于企業解決方案的架構級别
設計模式——适用于企業解決方案的設計級别
部署模式——适用于企業解決方案部署時的情況
架構級别的抽象由設計級别的大量低級元件構成。
設計模式用來解決設計企業應用程式中反複出現的問題,是“常用”的可重複解決方案。與架構模式不同,設計模式将識别參與的類、執行個體,以及它們的角色、職責和政策等。
根據GoF給出的原理,可将普通軟體工程中的“設計模式”分為以下3種類型:
1)“建立”設計模式
有助于建立不同上下文環境需要的對象群組件執行個體。下面是5種流行的建立模式:
(1)抽象工廠(Abstract Factory)
(2)工廠方法(Factory Method)
(3)建構者(Builder)
(4)原型(Prototype)
(5)單元素(Singleton)
2)“結構”設計模式
涉及到如何将類和對象組合為規模更大的結構。下面是7種流行的建立模式:
(1)擴充卡(Adapter)
(2)橋(Bridge)
(3)複合(Composite)
(4)裝飾者(Decorator)
(5)外觀(Facade)
(6)次輕量級(Flyweight)
(7)代理(Proxy)
3)“行為”設計模式
涉及到不同互動對象之間的通信。行為模式描述了在運作時較難了解的通信流。下面是11種流行的建立模式:
(1)指令(Command)
(2)職責鍊(Chain of Responsibilities)
(3)截獲器(Interpreter)
(4)疊代器(Iterator)
(5)紀念品(Memento)
(6)中介(Mediator)
(7)觀察者(Observer)
(8)狀态(State)
(9)政策(Strategy)
(10)模闆方法(Template method)
(11)通路者(Visitor)