上一篇中我們分析了實體類,這一篇我們來看看數據訪問是怎麼設計的。
從系統結構圖中可以看出,到目前為止我們沒有任何關於數據庫訪問的實現部分,而Business則僅僅 是給出了IDatabase和IEntityDataAccess這兩個用於定義數據訪問要實現什麼功能的接口。我們認為數據 訪問如何實現是系統的細節,而領域模型(業務邏輯)是抽象,抽象的領域模型定義、但不關心、更不依 賴數據訪問和數據庫的設計與實現。相反,作為實現的細節,數據層根據業務邏輯的需要實現,隨業務邏 輯的變更而變更,這也符合DIP(接口倒置原則)。上面的系統結構圖,添加數據訪問後,應該是這個樣 子:
不僅僅是數據訪問依賴於Business,UI——無論是Windows的還是Web的,也依賴於Business。在開發 Web層的時候,我們還會重申這個問題。