天天看點

J2EE Architecture(17)

版權聲明:本文為部落客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)

上一篇: GWT筆記(4)
下一篇: GWT筆記(3)