一、為什麼需要三層?
例項
服務員只管接待客人
廚師只管烹炒客人要的美食
採購員只管按客人需求採購
他們各負責其責
結論:
資料庫訪問和使用者型別判斷邏輯放在一起實現
使用者介面層直接呼叫資料訪問實現
整個系統功能放在同乙個專案中實現
二、三層結構基本的概念:
1、表現層(ui):通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。
2、業務邏輯層(bll):針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。
3、資料訪問層(dal):該層所做事務直接運算元據庫,針對資料的增添、刪除、修改、查詢等。
各層作用:
資料資料訪問層:主要是對原始資料(資料庫或者文字檔案等存放資料的形式)的操作層,而不是指原始資料,
也就是說,是對資料的操作,而不是資料庫,具體為業務邏輯層或表示層提供資料服務.
業務邏輯層:主要是針對具體的問題的操作,也可以理解成對資料層的操作,對資料業務邏輯處理,如果說資料層
是積木,那邏輯層就是對這些積木的搭建。
表示層:主要表示web方式,也可以表示成winform方式,web方式也可以表現成:aspx,如果邏輯層相當強大和完善,
無論表現層如何定義和更改,邏輯層都能完善地提供服務。
三、三層的優缺點:
優點:
1、開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的復用。
缺點:1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的
資料,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加乙個功能,為保證其設
計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的**。
3、增加了開發成本。
四、三層架構規則:
1.系統各層次及層內部子層次之間都不得跨層呼叫。
2.entityobject 在各個層之間傳遞資料。
3.需要在ui層繫結到列表的資料採用基於關係的dataset傳遞,除此之外,應該使用entityobject傳遞資料。
4.對於每乙個資料庫表(table)都有乙個entityclass與之對應,針對每乙個entity class都會有乙個bem class與
之對應。
5.在數量上,bemclass比entity class要多,這是因為有些跨資料庫或跨表的操作(如複雜的聯合查詢)也需要由
相應的bem class來提供支援。
6.對於相對簡單的系統,可以考慮將businessclass 子層和business flow 子層合併為乙個。
7.ui層和bl層禁止出現任何sql語句。
五、三層之間依賴關係
六、三層之間的資料傳遞反向
七、三層結構原理:
3個層次中,系統主要功能和業務邏輯都在業務邏輯層進行處理。
所謂三層體系結構,是在客戶端與資料庫之間加入了乙個「中間層」,也叫元件層。三層體系的應用程式將業務
規則、資料訪問、合法性校驗等工作放到了中間層進行處理(如下圖)。通常情況下,客戶端不直接與資料庫進行交
互,而是通過com/dcom通訊與中間層建立連線,再經由中間層與資料庫進行互動。
Linux的循序漸進 三
基礎命令今天我們接著來看,作為一名運維,其實不用太過於著急,因為我們先講究的效率,其次才是速度,就好比你整天都在看書,但是效率卻極其低,還不如人家乙個小時的效率,那你還不如睡覺,好了,閒話我們也不說那麼多,我們的今天的目標是基礎命令全部過關,並且稍微深入部門高階命令,開始吧!輸出重定向 覆蓋輸出,會...
Linux循序漸進 1
第一課 什麼是linux 簡單地說,linux是一套免費使用和自由傳播的類unix作業系統,它主要用於基於i ntel x86系列cpu的計算機上。這個系統是由全世界各地的成千上萬的程式設計師設計和實現 的。其目的是建立不受任何商品化軟體的版權制約的 全世界都能自由使用的unix相容 產品。linu...
循序漸進學程式設計
軟體開發者是乙個日新月異的領域 it 中的大師,今天的程式設計方式與明天的程式設計或許截然不同,技術在不斷地革新,新語言 新平台的如雨後春筍般出現 更好的解決方案的冒出,因此我們需要跟得上節奏,我們沒有選擇,唯有努力提高自己。下面的幾點建議或許能幫助你成為乙個優秀地開發者。你是否聽說過 kaizen...