天天看點

三層架構(一)

三層架構

本人最近在學習web,學到了三層感覺收獲很大,是以借此分享一些個人對三層的了解,表達有誤的地方還望各位大佬指出。由于三層知識點本來就挺多,故分幾次進行分享,這節主要是對三層的基礎入門。

1.所謂的三層架構是指表示層、業務邏輯層和資料通路層,其中表示層有分為表示層前台和表示層背景。

2.下面通過一個點餐的例子對三層做一個直覺的認識。

三層架構(一)

如上圖所示,主要有三個角色:服務員、大廚、小廚,它們各自的作用如下:

服務員:充當表示層,它又兩個工作,第一是與顧客互動(表示層前台),我們可以将菜單就了解為表示層前台代碼,因為菜單就是給顧客看的;當顧客點了一份洋芋絲時,這是服務員就該執行它的第二個工作了,即告訴大廚做一份洋芋絲(這時服務員就相當于表示層背景,用于轉發使用者的請求,使用者要吃洋芋絲,那我就找一個能做洋芋絲的人)。

大廚:充當業務邏輯層,用于對資料通路層的組裝。什麼意思呢?就是大廚不一定要親自去炒洋芋絲,大廚可以吩咐小廚A去洗洋芋,小廚A洗好洋芋後,大廚再吩咐小廚B切洋芋,最後大廚給小廚C說你現在可以超洋芋絲了。這裡大廚分别吩咐三個小廚就相當于上圖左邊的業務邏輯層可分的意思,大廚将炒洋芋絲這件事情分為了洗洋芋、切洋芋和炒洋芋。那麼組裝又該怎麼了解呢?很簡單,因為所有的小廚做的事情最後做成了一道洋芋絲,這就是組裝的意思。

小廚:充當資料通路層,是直接和洋芋打交道的人,(在開發中就是直接對資料庫進行操作,屬于dao層)

3.三層之間的關系:

上層一層一層的調用下層,下層将處理結果一層一層的傳回給上層。還是拿點菜的例子來說。顧客點完洋芋絲以後,服務員調用大廚,讓大廚做一道洋芋絲,大廚又調用三個小廚,三個小廚做完各自的工作後,一道洋芋絲就做好了。小廚C告訴大廚他已炒好洋芋絲,這是資料通路層傳回結果給業務邏輯層;然後大廚拿着洋芋絲給服務員,這是業務邏輯層傳回結果給表示層。

三層架構與MVC設計模式之間的關系

MVC設計模式和三層架構的初衷都是為了解耦合,解決了JSP+JavaBean開發模式的弊端。那麼就會有人問了,三層架構和MVC設計模式有什麼差別呢?下面再來張圖說說。

三層架構(一)

由于view層和表示層背景的作用都是展示給使用者看的,用于和使用者互動,是以它們之間是一緻的。表示層背景和controller層都是為了分發請求至相應的功能子產品,是以這兩個之間是一緻的。業務邏輯層和model層是一緻的。不管是MVC設計模式還是三層架構,它們各個層之間都是通過實體類來進行資料的傳輸的,這個會在本人下一節的三層案例分析中有所展現。

以上就是本人對三層架構的一個認識,若有不對的地方還請各位小夥伴指出。

繼續閱讀