首先要說說為什麼要有這玩意,如果不分層的話豈不是更快的連線資料庫??答案確實是更快,不分層速度會有提公升。但是綜合考慮,分層了比不分層有點多了太多,雖然有犧牲,但是三層會有相當大的拓展性以及特別多的優點。我們使用三層的目的是為了「高內聚,低耦合」的思想。下邊就來說一說三層架構的優點,以及缺點。
1、開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的復用;
6、拓展性強;
7、安全性高;
8、專案結構更清楚,分工更明確,有利於後期的維護和公升級。
1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的資料,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加乙個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的**。
1、顯示層(ui):通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得,這裡我就先簡單的理解為主要就是軟體的窗體介面類。
ui作用:
向使用者展示現特定業務資料;
採集使用者的輸入資訊和操作;
將有需要的資訊在顯示曾顯示出來。
ui設計原則:使用者至上,兼顧簡潔
2、業務邏輯層(bll):針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。b層是聯絡u層和d層的橋梁,進行他們之間的資料互動。
作用:從dal中獲得資料進行邏輯操做,以供ui顯示用;
從ui中獲得使用者指令和資料,執行業務邏輯;
從ui中獲得使用者指令和資料,通過dal寫入資料來源;
3、資料訪問層(dal):該層所做事務直接運算元據庫,針對資料的增添、刪除、修改、查詢等。接受b層的命令,對資料進行處理。
作用:從資料來源載入資料(select);
向資料來源寫入資料(insert/update);
從資料來源刪除資料(delete);
將資料返回b層;
4、實體層(enitity):貫穿於上面三層,在三層之間傳遞資料
好處:減少系統出錯的可能,提高開發效率
飯店將整個業務分解為三部分來完成,每一部分各負其責,服務員只管接待顧客、向廚師傳遞顧客的需求;廚師只管烹炒不同口味、不同特色的美食;後勤工作人員只管提供美食原料;他們三者分工合作共同為顧客提供滿意的服務。在飯店為顧客提供服務期間,服務員、廚師、後勤工作人員,三者中任何一者的人員發生變化時都不會影響其他倆者的正常工作,只對變化者進行重新調整即可正常營業。
我們用三層結構開發的軟體系統於此類似,表示層只提供軟體系統與使用者互動的介面;業務邏輯層是表示層和資料訪問層之間的橋梁,負責資料處理和傳遞;資料訪問層只負責資料的訪問工作。
如果服務員、廚師、採購員這三種任何一人離職或者請假,我們都可以立馬找別人來補上,任何乙個出現問題都不會影響其他人,這也充分的體現了「高內聚、低耦合」的思想。
只是先做理論上的理解,**尚未實現,後期添上。
Winform 三層架構小例子
在web開發中常常用到工廠模式三層架構,現在也在winform中應用這種架構方式,嘗試了很多,也模仿了經典例子petshop,但是還是不行,也參考了網上的一些例子。現在把我這個例子的整個製作過程簡單的介紹一下。由於本例子是介紹三層結構,所以只是簡單的應用,如果你覺得這種方式好,請自己實現其他模組 結...
三層架構專案開發
常見的三層架構包括如下幾個部分 資料訪問層 dal 用於實現與資料庫的互動和訪問,從資料庫獲取資料或儲存資料到資料庫的部分。業務邏輯層 bll 業務邏輯層承上啟下,用於對上下互動的資料進行邏輯處理,實現業務目標。表示層 web 主要實現和使用者的互動,接受使用者請求或返回使用者請求的資料結果的展現,...
分層開發(三層架構)
為了實現 高內聚 低耦合 採用 分而治之 的思想,把問題劃分開來各個解決,易於控制,易於延展,易於分配資源。分層的好處 1.實現了軟體之間的解耦,降低元件之間的耦合度 耦合 元件或者 之間的關聯程度 2.便於進行分工,提高開發效率,保證開發質量 3.便於維護 4.提高軟體元件的重用 6.便於產品功能...