PsikoterapistlerBurada
1.0.0
一個網路應用程序,專門從事其領域的心理治療師可以在此平台上回答向他們提出的問題。
我用過:
大樓
該項目由兩層組成。持久層,與資料庫關聯,核心層,與資料庫無關
控制器 => 核心 <= 持久化
我們可以討論這樣的依賴關係圖。核心層包含介面類別。持久性包含我在其中定義這些介面的類別。在控制器方面,我使用UnitOfWork類別來減少控制器 DBContext依賴性。然而,雖然控制器是高層,但它與低層UnitOfWork 緊密耦合。我為此使用了IUnitOfWork類別。 IUnitOfWork定義了一個包含 IRepository 的完全抽象類別。然後我讓UnitOfWork類別依賴IUnitOfWork類別。同樣,我在Controller層和IUnitOfWork之間創造了依賴關係。
控制器 => IUnitOfWork <= UnitOfWork
現在控制器高層依賴一個抽象類別。同樣,在UnitOfWork這個低階且詳細的類別中,Abstrack已經變得依賴一個類別。其實我所做的就是讓Core Layer完全獨立出來。應用程式的可測試性有所提高。另外,核心層具有獨立於ORM框架的結構。在 UnitOfWork 中進行的變更不會影響 IUnitOfWork 層。
另一方面,在應用程式中, DbContext依賴關係仍在UnitOfWork Layer 中繼續。這間接造成了Controller-DbContext緊密耦合的問題。我使用依賴注入框架來解決這個問題。 (忍者3.2.1.0)