JavaWeb三層架構詳解

什麼是三層架構?

三層架構(3-tier architecture) 通常意義上的三層架構就是將整個業務應用劃分爲:界面層(User Interface layer)、業務邏輯層(Business Logic Layer)、數據訪問層(Data access layer)。區分層次的目的即爲了「高內聚低耦合」的思想。在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分爲三層,從下至上分別爲:數據訪問層(又稱爲持久層)、業務邏輯層(又或稱爲領域層)、表示層。

 

表示層(UI層):

表示層也稱爲界面層,位於最外層(最上層),離用戶最近。用於顯示數據和接收用戶輸入的數據,爲用戶提供一種交互式操作的界面。

 

業務邏輯層(BLL層):

負責關鍵業務的處理和數據的傳遞。複雜的邏輯判斷和涉及到數據庫的數據驗證都需要在此做出處理。主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,如果說數據層是積木,那邏輯層就是對這些積木的搭建。

 

數據訪問層(DAL層):

主要負責對數據庫的直接訪問,爲業務邏輯層提供數據,根據傳入的值來操作數據庫,增、刪、改、查。

爲什麼要用三層架構呢?

1.團隊開發,便於管理

三層架構使得合作開發成爲可能,由於各層相互獨立,一個小組只需負責一小塊就可以。結構化的編程方法面對大型的項目會感到力不從心,因爲結構化設計必定會使程序變的錯綜複雜。邏輯主要在BLL層,就使得UI層也就是客戶端不承擔太多的職責,即使更新業務邏輯,也無需修改客戶端,不用重新部署。

2.解耦

上一層依賴於下一層,如果測試下一層沒有問題,那麼問題就只有可能發現在本層了,便於發現和改正BUG。體現了「高內聚,低耦合」的思想。比如樓房是分層的,我們要到哪一層樓非常方便,只需在電梯裏按下那個樓層的層號即可。而三層架構就好比開發的軟件「樓」,哪層出現Bug,哪層有問題,我們作爲開發人員能夠隨時找到,並修正。 各個層次分工明確,將一個複雜問題簡單拆分了。

 3.代碼的複用和勞動成本的減少

 分層的根本在於代碼的複用和勞動成本的減少。分層的最理想化的結果是實現層與層之間的互不依賴的內部實現,所謂的即插即用!

當然啦,三層架構也是有一定的缺點,但是總的來說,利大於弊。

那麼下面寫一個小項目來具體地深入瞭解一下三層架構