javaEE體系架構
1、兩層架構
簡單將系統分為前臺(視圖)、後臺(模型)。
前臺:即jsp、el和jstl等頁面的表示
後臺:業務邏輯層與表示層或數據層混在一起。
沒有任何中間件,開發、部署、擴展、維護困難。
如:jsp+servlet(+Dao)、jsp+javaBean(+Dao)
2、MVC設計模式
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫。
- 模型:模型層負責封裝應用的狀態,並實現數據處理和業務邏輯。
- 視圖:視圖層負責數據的顯示與提交。
- 控制器:負責控制視圖層發送的請求以及程序流程的控制。
MVC一個籠統的設計模式,要求把應用的模型按一定的層次規則抽取出來,將業務邏輯聚集到一個部件裏面(模型),控制器控制程序流程,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。
MVC提供了讓模型和視圖相分離的思路——提取出專門的控制器。我們把頁面跳轉關系管理、流程控制、表單數據的封裝及驗證、國際化等任務交給控制器處理。如java開發中,jsp專註視圖、servlet專註控制、javaBean處理邏輯。構成jsp+servlet+javaBean的MVC開發模式。
Controller被設計為處理用戶交互的邏輯。一個通常的誤解是認為Controller負責處理View和Model的交互,而實際上View和Model之間是可以直接通信的。為了實現視圖與業務邏輯的解耦,才加入controller這個中間層。
3、Dao設計模式
DAO即Data Access Object,數據訪問接口。數據訪問:故名思義就是與數據庫打交道。夾在業務邏輯與數據庫資源中間,在model層將業務邏輯與數據訪問分離。
四個組件:
DBUtils工具類---負責數據庫的連接與關閉
Dao接口---定義增刪該查的抽象方法,一個領域模型對應一個Dao接口。
Dao接口的實現類
VO值對象---一個VO對應一個數據表,便於把對數據表的操作轉化成對java類的操作。
4、三層架構的軟件設計體系
三層架構(3-tier architecture) 將整個業務應用劃分為:表現層(User Interface layer)、業務邏輯層(Business Logic Layer)、數據訪問層(Data access layer)。
區分層次的目的即為了“高內聚低耦合”的思想。在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。
表現層(UI):表示層由處理用戶交互的客戶端組件及其容器所組成(html、css、js、jsp、el和jstl等);
業務邏輯層(BLL):業務邏輯層由解決業務問題的組件組成;
數據訪問層(DAL):數據層由一個或多個數據庫組成,並可包含存儲過程。
三層架構思想,是一種籠統的架構思想,沒有限制具體的設計,三層是縱向的、下層向上層提供服務。
一般具體實現:用MVC設計模式解耦表現層和業務邏輯層;Dao設計模式作數據訪問層。
5、javaEE中的開發模式
開發模式:即軟件設計套路;選擇框架結構填充代碼的軟件開發方式(這裏的框架是按照三層架構思想、MVC和Dao等設計模式具體實現軟件的成熟框架結構)
1、適合規模較小的軟件系統(兩層架構)
jsp+servlet
將數據訪問抽象出來:jsp+servlet+Dao設計模式
2、適合較大規模的軟件系統(三層架構)
jsp+servlet+javaBean
將數據訪問抽象出來:jsp+servlet+javaBean+Dao設計模式
3、流行框架:ssh(structs+spring+hibranate)
- jsp、el和jstl對應表示層
- struts對應控制層
- spring+hibranate對應業務邏輯層
總結:分層的具體界限並不一定,根據軟件規模甚至功能模塊的復雜性有所不同。總之,理解三層架構的軟件體系思想,結合MVC、Dao等模式,根據項目規模、復雜性等具體問題具體解決。
javaEE體系架構