【三層架構】三層總結(知識型)
最近,學習到了三層架構,通過學習視訊、示例及其它相關檔案,有了一些總結性收穫。
三層,總體是指表現層User Interface(UI)、業務邏輯層Business Logic Layer(BLL)和資料訪問層Data Access Layer(DAL)。
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、有時會發生級聯修改:這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的程式碼。
使用情景
三層架構適用於構建分散式應用,並且業務邏輯複雜以及有真正的資料儲存層。