編號層級 1(最底)到 N(最頂)。第 K 層(1<K≤N)**僅依賴第 K-1 層**,禁止跨層依賴(如 UI 直接呼叫 DAL)。確保依賴鏈條清晰、可追蹤。
若 P 層依賴 Q 層,則 P 編號 > Q 編號。**嚴禁下層反向依賴上層**(如 DAL 參考 BLL)。保證編譯順序與架構層次一致。
「介面」廣義上為語義層面的契約(可為 C# interface、抽象類別、甚至具體類別)。第 K 層應依賴第 K-1 層的**介面**,而非具體類別。實現「依賴倒置」的程式碼層面體現。
核心:**高層組件不依賴低層組件,雙方皆依賴抽象**。
new Q層具體類別()。本架構中「依賴」皆指抽象依賴,與 DIP 完全一致。
識別應用中**可能變化**之處(如資料庫類型、業務規則、UI 框架),將其封裝為可替換模組,與穩定核心隔離。本專案將 DAL/BLL 實作封裝為獨立組件,介面不變。
**對擴展開放,對修改關閉**。新增 DAL 實作(如 OracleDAL)只需新增組件並修改組態,**零修改**既有 BLL/UI 程式碼。
每個操作類別**單一職責、歸屬單一層次**。實體類別、輔助類別為跨層共享,不歸屬任何業務層。
沿用業界驗證的三層體系(自底向上):
| 層次 | 核心職責 | 不負責事項 |
|---|---|---|
| DAL | 資料源交互:CRUD、預存程序呼叫、連線管理 | 資料正確性/有效性驗證、業務邏輯、資料用途 |
| BLL | 領域業務處理:邏輯資料生成/轉換/驗證、交易協調 | 資料呈現樣式、輸入驗證(UI 責任)、資料源細節 |
| UI | 使用者輸入接收、輸出呈現、存取安全驗證、輸入資料驗證 | 業務邏輯、資料存取、輸出資料正確性(但需處理異常顯示) |

七大模組:
依賴方向:UI → BLL 介面 → DAL 介面 ← DAL 實作 / BLL 實作。IoC 容器在啟動期繫結具體實作。
理論雖繁,然為後續所有實作決策之準則。下篇進入需求分析與資料庫設計,將抽象原則落地具體系統。