三層(似曾相識)

提高班14期郭倩_Ulrica發表於2018-06-18

前言

在看視訊之前已經查詢過部落格,瞭解了一下三層是什麼,看完視訊之後對三層的理解更深了一步,並且很喜歡這個詞。那麼什麼是三層呢?為什麼要學三層呢?三層都是哪三層?

三層

what?

三層

三層架構就是將應用劃分為介面層(user interface layer),業務邏輯層(business logic layer),資料訪問層(data access layer)。在軟體體系架構設計中,分層結構是最常見,也是最重要的一種結構。

三層的劃分:

物理:

  1. 顯示層(使用者至上,儘量簡潔)
  2. 業務層
  3. 資料層

邏輯:

  1. UI——–不能直接跟DAL打交道
  2. BLL—–需要引用資料層
  3. DAL/DB—-拿機房系統來說,只需要負責驗證登陸密碼即可(資料庫操作)

why?

什麼情況下使用三層?

當業務複雜到一定程度上,當資料儲存到達一個獨立的儲存介質後

目的是什麼?

為了“高內聚低耦合”的思想,也就是為了實現我們的迪米特法則(LOD)

優缺點:

優點:

  1. 降低了層與層之間的依賴;
  2. 標準化;
  3. 利於各層邏輯的複用;
  4. 降低了維護成本和時間

缺點:

  1. 系統架構複雜,不適合小型專案,
  2. 降低了系統的效能(中間層的“中介”)
  3. 增加了開發成本

思維導圖

三層

二層與三層

舉個栗子:

  1. 我們之前做過機房收費系統,裡面分為三塊:學生,操作員,管理員。
    有些事務是可以學生直接找管理員的,比方說交費。這時候沒有操作員這個媒介,就是二層;
    但是當學生多了,管理員可能就會迷糊了,不知道誰交費,誰沒交,這個時候“中間層“操作員出來了,學生可以通過操作員完成這個請求,而“資料層”管理員也不會因為任務量大而亂套了。只需要最後將結果返回”中間層“操作員,讓操作員將結果告知”顯示層“學生即可。

  2. 拿我們的宿舍和酒店舉例。宿舍是常住,而且人員都是固定的,沒有那麼繁瑣的請求入住;而酒店則每天人來人往不同,時間人物需求都不同。所以宿舍就是人(顯示層)和住宿(資料層)直接關聯,也就是二層;而酒店則是人(顯示層)與服務員(邏輯層)溝通,服務員操作程式(資料層)再告知客戶有沒有空房,以完成入住。

後記

三層是一個常用的架構。以後用於實踐中,體會會更深的吧;
初步瞭解,只是相識~

相關文章