三层基础知识梳理
在沒學習三層之前,我的“今目標”中的項目名稱是MVC分層。有一段時間我搞不清這兩個是什么概念,有何不同,我找了一些資料,現在還不能很好地理解。先分享一下。
三層架構是界面層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)構成的,而MVC是模型層(M)、界面層(View)、控制層(Controller)構成的,而且它們之間也不對應。如果硬要給他們對應的話,那么三層架構中的UI對應MVC中的view(jsp),都是用于顯示以及獲取界面的數據;三層架構中的BLL層和DAL層對應MVC中的Model(javabean)層都是用于處理上層傳遞來的數據以及從數據庫獲取的數據的;MVC中的Controller(Servlet)最多算是三層架構中的UI的一部分,也就我們常說的是Servlet。如圖:
這兩者核心的部分是“分層,解耦”。從這個角度看,三層架構和MVC又是一致的,只不過劃分方法不同。
下面是我對三層基本知識的梳理。
1:每一層是什么以及有什么作用。
U層(顯示層---User Interface):向用戶展現特定業務數據,采集用戶的輸入信息和操作。
B層(業務邏輯層---Business Logic Layer):從DAL中獲取數據,以供UI顯示用;從UI中獲取用戶指令和數據,執行業務邏輯;從UI中獲取用戶指令和數據,通過DAL寫入數據源。B層的職責機制有兩種:一種是UI--->BLL--->UI;另一種為UI--->BLL--->DAL---BLL--->UI.
D層(數據訪問層---Data Access Layer):從數據源加載數據;向數據源寫入數據;從數據源刪除數據。這里的數據源不一定是數據庫,還可以是XML。
此外:還有一個業務數據模型,比較傾向于業務邏輯層。封裝數據。在三層之間傳送數據的。獨立于其他三個層次。model不會引用其他三個程序集。而其他都引用model。
2.在具體項目中的應用原則:
U層:只負責采集和顯示用戶操作,不包含任何的業務相關的邏輯處理。
B層:負責處理業務邏輯。通過獲取UI傳來的操作指令,決定執行業務邏輯,在需要訪問數據源的時候直接交給DAL處理,處理完成后,返回必要數據給UI。
D層:只提供基本的數據訪問,不包含任何相關的業務處理。
3.各層的引用關系:
UI--->BLL--->DAL
UI直接引用BLL,可能會間接地引用DAL;BLL需要引用DAL;DAL程序集不引用BLL和UI。
當然要想真正的明白,還需要在實踐中練習。實例練習請見下一篇博客。
總結
- 上一篇: 对抽象工厂+反射+配置文件的实例理解
- 下一篇: 简单工厂模式,抽象工厂模式,反射工厂模式