數據訪問對象和活動記錄有什麼區別?它們看起來是完全相同的,因爲它們在應用程序和持久層之間建立了一個層,並使用SQL查詢抽象出直接的數據庫訪問。活動記錄和DAO之間的區別?
17
A
回答
17
數據訪問對象(DAO)引用數據層中的一個對象,負責在您的域中保留一個單獨的實體。活動記錄是混合的,其中包含表中單個行值的類也負責查詢,更新,插入和刪除該表。 Active Record設計模式意味着您的對象與數據庫中的表有一對一的映射關係。
18
A 數據訪問對象(DAO)是專用於將模型/域對象持久化到數據源而不僅僅是數據層中的任何對象的接口。這是一個reference。
ActiveRecord模式以類似的方式工作,但將持久性方法放在模型對象本身上,而DAO定義了離散接口。 DAO模式的優點是:
它易於限定的持久性,例如,從一個數據庫移動到雲,而無需改變底層impelementation的另一個風格,而外部接口保持不變,因此不影響其他類。
持久性問題模塊化遠離主模型對象的關注點。
ActiveRecord模式的優點是簡單。
相關問題
- 1. ADO和DAO之間的區別
- 2. 「實體」和「記錄」之間的區別?
- 3. 活動記錄中@之間的基本問題區別
- 4. 屏幕和活動之間的區別
- 5. StateChart和活動圖之間的區別
- 6. 軌道中的活動記錄和ORM之間的區別是什麼?
- 7. 活動目錄角色:用戶和讀者之間的區別
- 8. 活動記錄關聯中has_one和belongs_to之間的區別是什麼?
- 9. Ember:unloadRecord與新記錄之間的區別
- 10. 活套和服務之間的區別
- 11. formRemote()和submitToRemote()標記之間的區別
- 12. 摘錄和date_part之間的區別
- 13. DAO和休眠的區別
- 14. Rails活動記錄的select和group有什麼區別?
- 15. 在記錄Level.INFO和Level.DEBUG之間的概念區別是什麼
- 16. Android中的文件,類和活動之間的區別
- 17. DAO和Data Mapper之間有什麼區別
- 18. Android中進程,活動,線程和任務之間的區別
- 19. 本地和活動服務器之間奇怪的MySQL區別
- 20. jvisualvm活動對象和分配對象之間的區別
- 21. Keras:內核和活動之間的區別regularizers
- 22. UML中活動圖的狀態和活動之間有什麼區別?
- 23. 可拖動和ondragstart之間的區別
- 24. 動態和System.Object之間的區別
- 25. Primefaces和primefaces之間的區別移動
- 26. MongoDB:文檔,記錄和屬性之間有什麼區別?
- 27. 之間的〜/和的區別../
- 28. Codeigniter活動記錄和表別名
- 29. 自動化測試中手寫代碼和記錄腳本之間的區別
- 30. '#','%'和'$'之間的區別
我認爲你的第一個子彈是不準確的。也許在某些實現中,但在其他實現中,完全有可能在不改變接口的情況下更改持久性機制(即使在運行時)relationdb,平面文件或Web服務......特別是如果該接口設計得很好(即它只是創建,讀取,更新,刪除)。不同之處在於(再次,取決於具體實現......因爲這些特徵可以混入多種語言中......) – Mainguy
@Mainguy是的,如果語言提供了輕鬆動態(而非靜態)mixins DAO目標可以被滿足已經通過ActiveRecord。 –