柚子快報激活碼778899分享:系統(tǒng)架構:經典三層架構
柚子快報激活碼778899分享:系統(tǒng)架構:經典三層架構
引言
經典三層架構是分層架構中最原始最典型的分層模式,其他分層架構都是其變種或擴展,例如阿里的四層架構模式和DDD領域驅動模型。阿里的 四層架構模型在三層基礎上增加了 Manager 層,從而形成變種四層模型;DDD架構則在頂層用戶界面層與業(yè)務邏輯層之間引入應用層,從而形成變種DDD領域驅動模型;具體可參考《系統(tǒng)架構:分層架構》。
架構理念
三層架構基于“高內聚,低耦合”的思想,把各個功能模塊劃分為表示層(UI)、業(yè)務邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)。三層架構如圖一所示。
圖一 三層構架
表示層(UI) 位于三層構架的最上層。與用戶直接接觸,實現(xiàn)系統(tǒng)與用戶直接的交換,以及消息事件的處理。UI層調用業(yè)務邏輯層BLL相關接口完成業(yè)務操作。
業(yè)務邏輯層(BLL),實現(xiàn)數(shù)據(jù)處理和數(shù)據(jù)傳遞,將界面表示層和數(shù)據(jù)訪問層連接起來,起到承上啟下的作用。
數(shù)據(jù)訪問層(DAL),實現(xiàn)數(shù)據(jù)的增加、刪除、修改、查詢等操作,并將操作結果反饋到BLL層;
BLL處理的數(shù)據(jù)來自數(shù)據(jù)庫和用戶界面,其將用戶界面收集過來的數(shù)據(jù)經過業(yè)務邏輯層的處理傳送到數(shù)據(jù)庫,而從數(shù)據(jù)庫獲取的數(shù)據(jù),經過業(yè)務邏輯層處理后再呈現(xiàn)給用戶界面。因此業(yè)務邏輯層是中間層,起到承上啟下的作用。
經典三層架構的調用關系是:UI調用BLL,BLL調用DAL。而UI與DAL是不可直接相互調用,它們之間相互隔離。
基于 “高內聚,低耦合”理念的三層架構,使得開發(fā)人員分工更明確,可以讓開發(fā)人員的精力更專注于應用系統(tǒng)核心業(yè)務邏輯的分析、設計和開發(fā),加快項目的進度,提高了開發(fā)效率,有利于項目的升級和維護工作。
體系結構
三層架構的各層之間采用接口相互訪問,并通過對象模型的實體類(Model)對象作為數(shù)據(jù)傳遞的載體,不同的對象模型的實體類一般對應于數(shù)據(jù)庫的不同表,實體類的屬性與數(shù)據(jù)庫表的字段名一致。
表示層和業(yè)務邏輯層之間用對象模型的實體類(Model)對象來傳遞數(shù)據(jù),業(yè)務邏輯層和數(shù)據(jù)訪問層之間用對象模型的實體類(Model)對象來傳遞數(shù)據(jù),數(shù)據(jù)訪問層通過ORM組件來操作數(shù)據(jù)庫。在DAL和數(shù)據(jù)庫之間,通過ORM實現(xiàn)二維表關系數(shù)據(jù)和實體類(Model)對象的映射。三層架構的體系結構如圖二所示。
圖二 三層架構的體系結構
因此三層構架中除了三層之外,還有實體類(Model)對象這最為重要的組成部分。實體類(Model)對象使用實體(Entity)表示,它不屬于三層中的任何一層。也就是說實體類(Model)對象可以被三層中的任何一層調用。實體(Entity)與三層的關系如圖三所示。
圖三 實體與三層的關系
實體類(Model)對象Entity,具體有三個作用:
實體實現(xiàn)面向對象思想中的"封裝”。實體貫穿于三層之間,并在三層之間傳遞數(shù)據(jù)。相鄰層之間的單項數(shù)據(jù)傳遞依靠變量或實體作為參數(shù)來傳遞,這樣就構造了三層之間的聯(lián)系,從而完成功能實現(xiàn)。
優(yōu)缺點
優(yōu)點
可以讓開發(fā)人員只關注整個架構的某一層;分層清晰,開發(fā)分工也更明確,有利于后期的維護和升級;單向調用,不允許跨層調用,可以很大程度上降低層與層之間的依賴耦合
缺點
三層之間數(shù)據(jù)傳輸都通過實體類(Model)對象實現(xiàn),實體類的變化將導致三層都需要修改。從而增加維護的工作量,也使得產生Bug的風險加大。三層之間數(shù)據(jù)傳輸都通過實體類(Model)對象實現(xiàn)不利于數(shù)據(jù)安全。例如一個數(shù)據(jù)表t_user,其字段包括userName, password, age等信息;password和age是客戶的私人信息,這將導致這些數(shù)據(jù)在三層直接可以隨意獲取和展示,這是極不合適的。
總結
經典三層架構是分層架構中最原始最典型的分層模式,掌握經典三層模式是理解其他分層模型的基礎。本文從三層架構的理念,架構體系,優(yōu)缺點等三個角度對經典三層架構進行了深入分析。
柚子快報激活碼778899分享:系統(tǒng)架構:經典三層架構
文章鏈接
本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。