01.什麼是三層架構 01.表示層(User Interface layer):負責接收用戶的輸入,將輸出呈現給用戶,以及訪問安全性驗證,並對輸入的數據的正確性,有效性及呈現樣式負責,但對輸出的數據的正確性不負責。 02.業務邏輯層(Business Logic Layer):負責系統領域業務的處理 ...
01.什麼是三層架構
01.表示層(User Interface layer):負責接收用戶的輸入,將輸出呈現給用戶,以及訪問安全性驗證,並對輸入的數據的正確性,有效性及呈現樣式負責,但對輸出的數據的正確性不負責。
02.業務邏輯層(Business Logic Layer):負責系統領域業務的處理,負責邏輯性邏輯的生成,處理及轉換。對所輸入的邏輯性數據的正確性及有效性負責,但對輸出的邏輯性數據及用戶性數據的正確性不負責任,對數據的呈現樣式不負責。
03.數據訪問層(Data Access Layer):負責與數據源的交互,即數據的插入,刪除,修改,以及從資料庫中讀出數據等操作,但對數據的正確性和有效性不付責任,對數據的用途不瞭解,不負擔任何業務邏輯的處理。
02.搭建三層的步驟?
Model:將數據表中的列轉換成實體類中的屬性。
DAL(Data Access Layer):專門負責和資料庫交互,所有的SQL都要出現在該層。
BLL(Business Logic Layer):隔離DAL和UI層,將DAL數據返回給UI層。
UI(User Interface layer):負責界面的展示。
Common:工具類層 。負責和資料庫無關的但是UI又需要調用的。
調用關係:
01.所有層都要引用Model
02.BLL依賴於DAL和Model
03.UI依賴於BLL和Common和Model
04. Model:不依賴任何層
引用關係:
DAL:Model
BLL:Model,DAL
UI:Model,BLL,Common
Common:
03.三層架構有什麼優點?
解析:
優點:
1、開發人員可以只關註整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的復用。
6、擴展性強。不同層負責不同的層面,如PetShop可經過簡單的配置實現Sqlserver和oracle之間的轉換,
當然寫好了也可以實現B/S與C/S之間的轉換
7、安全性高。用戶端只能通過邏輯層來訪問數據層,減少了入口點,把很多危險的系統功能都屏蔽了。
8、項目結構更清楚,分工更明確,有利於後期的維護和升級
缺點:
1、降低了系統的性能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,
以此獲取相應的數據,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,
為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼
3、增加了代碼量,增加了工作量