資料訪問層dal(data access layer)
這一層主要就是完成把資料庫的資料跟實體對映起來,然後完成資料的增、刪、改、查操作
一般包括以下幾部分
model 定義資料模型,資料實體
dbuitil 對資料庫中資料的具體操作
dal資料和實體物件對映
業務邏輯層bll(business logical layer)
這一層就是針對相應的物件,進行一些具體的操作,實現相應的功能。「業務邏輯層在體系架構中的位置很關鍵,它處於資料訪問層與表示層中間」,啟著承上啟下的關鍵作用。
這一層根據不同的需求,劃分成不同的部分來完成不同的功能
表示層(ui/webui)
提供給使用者,用於資料顯示,響應使用者操作!
具體實現,了解不多,以後再詳細學習。
最後,這三層結構是從下向上一層一層的調,理想的分層式架構,應該是乙個支援可抽取、可替換的「抽屜」式架構。
優缺點優點:
1、開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的復用。
缺點:1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的資料,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加乙個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的**。
規則三層結構的程式不是說把專案分成dal, bll, webui三個模組就叫三層了, 下面幾個問題在你的專案裡面:
1. uilayer裡面只有少量(或者沒有)的sql語句或者儲存過程呼叫, 並且這些語句保證不會修改資料?
2. 如果把uilayer拿掉, 你的專案還能在inte***ce/api的層次上提供所有功能嗎?
3. 你的dal可以移植到其他類似環境的專案嗎?
4. 三個模組, 可以分別執行於不同的伺服器嗎?
如果不是所有答案都為yes, 那麼你的專案還不能算是嚴格意義上的三層程式. 三層程式有一些需要約定遵守的規則:
1. 最關鍵的, ui層只能作為乙個外殼, 不能包含任何bizlogic的處理過程
2. 設計時應該從bll出發, 而不是ui出發. bll層在api上應該實現所有bizlogic, 以物件導向的方式
4. 不管使用com+(enterprise service), 還是remoting, 還是webservice之類的遠端物件技術, 不管部署的時候是不是真的分別部署到不同的伺服器上, 最起碼在設計的時候要做這樣的考慮, 更遠的, 還得考慮多台伺服器通過負載均衡作集群
與mvc的區別
mvc(模型model-檢視view-控制器controller)是一種設計模式,我們可以用它來建立在域物件和ui表示層物件之間的區分。
同樣是架構級別的,相同的地方在於他們都有乙個表現層,但是他們不同的地方在於其他的兩個層。
在三層架構中沒有定義controler的概念。這是我認為最不同的地方。而mvc也沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或mvc搭建程式最主要的區別。當然了。在三層中也提到了model,但是三層架構中model的概念與mvc中model的概念是不一樣的,「三層」中典型的model層是已實體類構成的,而mvc裡,則是由業務邏輯與訪問資料組成的。
了解c 中的三層架構 DAL,BLL,UI
一提三層架構,大家都知道是表現層 ui 業務邏輯層 bll 和資料訪問層 dal 而且每層如何細分也都有很多的方法。但具體 怎麼 寫,到底那些檔案算在哪一層,卻是模模糊糊的。下面用乙個簡單的例子來帶領大家實戰三層架構的專案,這個例子只有乙個功能,就是使用者的簡單管理。首先建立乙個空白解決方案,新增如...
三層 我眼中的三層結構
從行為型模式命令模式引發的對三層的思考。記得 大話設計模式 中對命令模式的講解。燒烤攤和燒烤店之間的區別。由於客戶和烤羊肉串老闆的 緊耦合 所以容易出錯,容易混亂,也容易挑剔。這其實就是 行為請求者 與 行為實現者 的緊耦合。對請求排隊或記錄請求日誌,以及支援可撤銷的操作等行為時,行為請求者 與 行...
三層結構解釋
所謂三層體系結構,是在客戶端與資料庫之間加入了乙個中間層,也叫元件層。這裡所 說的三層體系,不是指物理上的三層,不是簡單地放置三颱機器就是三層體系結構,也 不僅僅有b s應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一 臺機器上。三層體系的應用程式將業務規則 資料訪問 合法性校驗等工...