1. 程式人生 > >【三層架構】三層總結(知識型)

【三層架構】三層總結(知識型)

       最近,學習到了三層架構,通過學習視訊、示例及其它相關檔案,有了一些總結性收穫。

       三層,總體是指表現層User InterfaceUI)、業務邏輯層Business Logic LayerBLL)和資料訪問層Data Access LayerDAL)。

UI層

  顯示層就是軟體與使用者展示的直接介面,展示介面的作用有兩個:一個是向用戶展示資料;另一個就是獲取使用者在介面上的操作資訊,然後提供給其它層作相應處理。

  顯示層的設計原則就是以使用者為主(以使用者角度考慮),並且在達到使用者要求的同時兼顧簡潔性。如果一個窗體上面密密麻麻的控制元件、資料什麼的,亂七八糟的,就算我們自己都不喜歡,更別說使用者了,所以顯示層在滿足要求的前提下儘量簡潔。

BLL層

  業務邏輯層的主要作用就是處理業務的,業務包括獲取資料訪問層讀取的資料庫資料,展示在顯示層;獲得顯示層使用者操作,執行相應事件;獲取顯示層資訊,令資料訪問層寫入資料庫。一句話就是所有業務活動都在業務邏輯層處理。

  業務邏輯層是溝通顯示層和資料訪問層的橋樑。

DAL層

  資料訪問層的作用就是對資料庫裡面的資料進行讀取、修改、存入和刪除。

原則

  1、資料訪問層只提供基本的資料訪問,不包括任何業務相關的邏輯處理;

  2、顯示層只負責顯示和採集使用者操作,不包含任何業務相關的邏輯處理;

  3、業務邏輯層負責處理業務邏輯,通過獲取顯示層傳來的操作指令,決定執行業務邏輯,在需要訪問資料來源的時候直接交給資料訪問層處理。處理完成後,返回必要資料給顯示層

注意

  三層每層都在相應的程式集中,不應該在同一個程式集中。並且,三層之間的應用關係如:

     1、DAL所在程式集不引用BLL和UI;

     2、BLL需要引用DAL;

     3、UI直接引用BLL,可能會間接應用DAL。

  在設計三層的時候應注意避免相互引用。

優點

  1、開發人員只關注某一層的操作;

  2、新的實現容易替換原有層次的實現;

  3、降低了各層之間的依賴關係;

  4、有利於軟體的標準化;

  5、有利於邏輯的複用;

  6、保護了資料的安全;

  7、有利於負載平衡;

  8、提高了執行效率;

  9、便於構建不同網路環境中的分散式應用。

缺點

  1、降低了系統性能:如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的資料,如今卻必須通過中間層來完成。

  2、有時會發生級聯修改:這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的程式碼。

使用情景

  三層架構適用於構建分散式應用,並且業務邏輯複雜以及有真正的資料儲存層。