Martin Fowler 概括分層優勢:關注點分離、實現可替換、依賴降低、標準化促進、邏輯復用。PetShop 採用經典結構:
代價:性能開銷(層間調用)、級聯修改風險(自上而下擴展功能需同步修改多層)。但隨硬件提升與緩存/異步機制引入,性能損耗已可忽略。
無獨立 DAL,業務邏輯直連數據庫。短期提速,長期導致職責混亂,數據庫遷移極難。
DAL 獨立,引入 IDAL 接口與 DALFactory,SQL Server/Oracle 雙實現並存。
核心分層不變,新增:
CacheDependency 模塊優化讀取Messaging 模塊(MSMQ)實現訂單異步落庫
IDAL 向下屏蔽 SQL Server/Oracle 實現差異,向上為 BLL 提供穩定契約。DALFactory 封裝創建邏輯,BLL 僅依賴接口,實現換庫零影響。
訂單插入引入 IBLLStrategy.IOrderStrategy,同步/異步兩種實現(OrderSynchronous/OrderAsynchronous)可配置切換。雖核心邏輯集中於單一 BLL 程序集(未嚴格拆分接口與實現模塊),但策略模式為未來擴展預留接縫。
引入 CacheDependency 管理輸出緩存失效,配合異步與會員體系構建完整 Web 應用。
PetShop 4.0 展示了:
這正是企業級 .NET 系統架構的教科書級範例。