在學校學習Java後,我對DAO模式非常熟悉(Data access object)。然而在工作中我使用.NET。在.NET中經常談論DAL(Data Access Layer)。對我來說他們的目的看起來很相似。所以問題是DAO和DAL基本上是一樣的東西? DAL這個術語是否只是用來彌補Data Access Objects?DAO和DAL有什麼區別?
36
A
回答
57
數據訪問層(DAL)是存在於業務邏輯層和持久性/存儲層之間的系統層。 DAL可能是單個類,也可能是由多個數據訪問對象(DAO)組成的。它可能在業務層的頂層與之交談,隱藏了數據訪問邏輯的複雜性。它可能是第三方的對象關係映射工具(ORM),如Hibernate。
DAL是一個體繫結構術語,DAO是一個設計細節。
+4
假設我有一個名爲DAO的接口,它有一個getCustomer()方法。該接口由SqlServerDAO-class實現。當調用getCustomer()時,SqlServerDAO從DB獲取數據,創建並返回Customer對象。在這種情況下,DAL由DAO接口和SqlServerDAO類組成,對吧? – simoraman 2009-07-07 05:54:14
11
數據訪問層將包含許多數據訪問對象。
它的主要作用是將業務邏輯從數據庫邏輯和實現中分離出來。
例如,DAL可能有一個方法,它將通過一個或多個數據訪問對象從多個表,查詢或存儲過程中檢索數據。
更改數據庫結構,DAO中,存儲過程,甚至數據庫的類型不應該承擔更改業務邏輯,這是到由DAL提供的脫鉤。
相關問題
- 1. DAO和DP模式有什麼區別?
- 2. DAO和Spring Beans有什麼區別?
- 3. DAO和Data Mapper之間有什麼區別
- 4. 有什麼區別`和$(Bash中有什麼區別?
- 5. 有什麼區別? :和||
- 6. &&和||有什麼區別?
- 7. 「/」和「/ *」有什麼區別?
- 8. 有什麼區別:。!和:r!?
- 9. ==和===有什麼區別?
- 10. Appender和〜有什麼區別?
- 11. $ @和$ *有什麼區別?
- 12. is和=有什麼區別?
- 13. #.00和#。##有什麼區別?
- 14. `==`和`is`有什麼區別?
- 15. '=='和'==='有什麼區別?
- 16. /和/#/有什麼區別?
- 17. | 0和~~有什麼區別?
- 18. `&`和`ref`有什麼區別?
- 19. ==和===有什麼區別?
- 20. ==和===有什麼區別?
- 21. `{}`和`[]`有什麼區別?
- 22. JavaScript和=== ===有什麼區別?
- 23. difftime和' - '有什麼區別?
- 24. =和==有什麼區別?
- 25. DAO和休眠的區別
- 26. 什麼是PHP中的DBAL,DAO,DAL,Model和DLL
- 27. xtype和別名有什麼區別?
- 28. Mixpanel:識別()和people.identify()有什麼區別?
- 29. 有什麼區別
- 30. 有什麼區別
我一直認爲DAL是數據抽象層 – davidsleeps 2009-07-06 11:33:43