首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

實戰分層架構(三):架構概要設計——六大核心原則與三層職責劃分的理論基石

     編輯:關於.NET

六大架構核心原則

1. 逐層調用原則

編號層級 1(最底)到 N(最頂)。第 K 層(1<K≤N)**僅依賴第 K-1 層**,禁止跨層依賴(如 UI 直接呼叫 DAL)。確保依賴鏈條清晰、可追蹤。

2. 單向調用原則

若 P 層依賴 Q 層,則 P 編號 > Q 編號。**嚴禁下層反向依賴上層**(如 DAL 參考 BLL)。保證編譯順序與架構層次一致。

3. 針對介面程式設計,而非實作

「介面」廣義上為語義層面的契約(可為 C# interface、抽象類別、甚至具體類別)。第 K 層應依賴第 K-1 層的**介面**,而非具體類別。實現「依賴倒置」的程式碼層面體現。

4. 依賴倒置原則 (DIP)

核心:**高層組件不依賴低層組件,雙方皆依賴抽象**。

  • 具體依賴:P 層程式碼中 new Q層具體類別()。
  • 抽象依賴:P 層僅持有 Q 層介面變數,實例化由 DI 容器注入。

本架構中「依賴」皆指抽象依賴,與 DIP 完全一致。

5. 封裝變化原則

識別應用中**可能變化**之處(如資料庫類型、業務規則、UI 框架),將其封裝為可替換模組,與穩定核心隔離。本專案將 DAL/BLL 實作封裝為獨立組件,介面不變。

6. 開放-封閉原則 (OCP)

**對擴展開放,對修改關閉**。新增 DAL 實作(如 OracleDAL)只需新增組件並修改組態,**零修改**既有 BLL/UI 程式碼。

7. 單一歸屬原則

每個操作類別**單一職責、歸屬單一層次**。實體類別、輔助類別為跨層共享,不歸屬任何業務層。

層次劃分:經典三層架構

沿用業界驗證的三層體系(自底向上):

  1. 資料存取層 (DAL)
  2. 業務邏輯層 (BLL)
  3. 表示層 (UI)

三層職責劃分細則

層次核心職責不負責事項
DAL 資料源交互:CRUD、預存程序呼叫、連線管理 資料正確性/有效性驗證、業務邏輯、資料用途
BLL 領域業務處理:邏輯資料生成/轉換/驗證、交易協調 資料呈現樣式、輸入驗證(UI 責任)、資料源細節
UI 使用者輸入接收、輸出呈現、存取安全驗證、輸入資料驗證 業務邏輯、資料存取、輸出資料正確性(但需處理異常顯示)

模組劃分與交互關係

模組交互關係圖

七大模組:

  1. 實體類別模組(跨層共享)
  2. DAL 介面族
  3. BLL 介面族
  4. DAL 實作模組(可多組切換)
  5. BLL 實作模組
  6. UI 模組
  7. IoC 容器模組
  8. 輔助類模組(跨層共享)

依賴方向:UI → BLL 介面 → DAL 介面 ← DAL 實作 / BLL 實作。IoC 容器在啟動期繫結具體實作。

結語

理論雖繁,然為後續所有實作決策之準則。下篇進入需求分析與資料庫設計,將抽象原則落地具體系統。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved