我正在用實體框架模型優先方法構建CRUD應用程序。我的應用程序的構造方式是UI LAYER和DAL都依賴於域圖層,並且域圖層不依賴於任何內容。域層僅公開存儲庫和域對象接口。該存儲庫在DAL中實現並通過依賴注入提供給域層。作爲所有存儲庫,我的存儲庫公開了像getCustomer,deleteCustomer等函數,但由於這些函數是在DAL中實現的,因此DAL必須能夠創建符合Domain層中接口的對象。現在我的二元選擇是我應該如何讓它這樣做:我應該使用抽象工廠並將它們注入到DAL中,或者擴展部分生成的實體的定義並使它們實現由域層公開的接口?使用抽象工廠或部分類的二元選擇
0
A
回答
1
域層僅公開存儲庫和域對象接口。
在這種類型或體系結構(hexagonal architecture)中,域對象不應該有接口,只有存儲庫。相反,讓DAL直接創建(重建)域對象。將域對象抽象爲接口沒有任何好處,只有不必要的複雜性,比如工廠。另外,正如Heather所指出的那樣,抽象存儲庫通常也是不必要的複雜性。在實現中製作真正可移植的存儲庫抽象幾乎總是徒勞的。在我看來,存儲庫抽象的核心優勢在於可以在沒有接口的情況下實現封裝 - 僅僅直接引用實現類。
相關問題
- 1. 抽象類或部分?
- 2. 抽象工廠使用Unity
- 3. 抽象類工廠方法
- 4. 抽象工廠
- 5. 使用抽象工廠的問題
- 6. 正確使用抽象工廠的
- 7. 選擇界面或抽象類
- 8. 工廠模式抽象工廠模式
- 9. 工廠和抽象工廠模式
- 10. 爲什麼要使用抽象工廠
- 11. 抽象工廠使用「新」嗎?
- 12. JDBC如何使用抽象工廠?
- 13. 使用抽象工廠與Spring框架
- 14. 何時使用抽象工廠模式?
- 15. 在單元測試中使用工廠/抽象工廠設計模式
- 16. 模板抽象工廠類與池
- 17. 工廠類與抽象方法
- 18. 抽象工廠和工廠方法可以一起使用嗎?
- 19. 可以使用抽象工廠模式類型的協方差
- 20. 抽象工廠改進
- 21. 抽象工廠模式
- 22. 抽象工廠泛型
- 23. Paramaterized抽象工廠在Autofac
- 24. 抽象工廠壞設計?
- 25. 抽象工廠模式
- 26. 抽象工廠查詢
- 27. 抽象工廠模式
- 28. 抽象工廠問題
- 29. 抽象工廠方法;改變傳遞給對象的工廠
- 30. 瞭解抽象工廠設計模式中的抽象工廠設計模式
您是否期待有人在未來某個時候換出您的DAL?爲什麼DI?在我看來,你正在過度複雜的解決方案。 – Heather
@ Heather,實際上沒有過度複雜。只是設計正確的方式。在使用任何工具之前,DI完全遵循良好的原則。 –