它有什麼意義呢?它只是添加更多需要編寫的代碼,這對於添加IRepository之前無法執行的應用程序沒有任何作用。IRepository的意義何在?
2
A
回答
5
兩個原因:
測試。你可以模擬你的版本庫接口並將它傳遞給依賴於你的版本庫的所有方法(這只是任何訪問數據層的控制器)。這反過來又允許你正確地測試,從真實的數據庫或數據源中分離出來。
繼承。您可以傳遞庫接口而不是類類型,從而允許您在繼承樹的各個層次上擁有異構數據源,但仍可保證存在相同的功能。這與「抽象類與接口」在任何時候都是相同的論點,但它也是這樣。
1
Repository模式背後的重要思想是,您可以通過一種方式來查詢並保存對象,而無需知道它們的存儲方式。
這很有用,因爲您可以將UI和流模型與對象的存儲,緩存和檢索方式分離。這允許更大的能力獨立地測試UI層和更低層,獨立處理它們並獨立服務它們。
最成熟的對象關係映射(ORM)框架允許您執行此操作。
1
我想我會因爲這個(像往常一樣沒有真正的幫助答案)而被低估,但是MVC究竟有什麼意義呢?我們不能直接在頁面中編寫正確的代碼,很好的ASP風格嗎?哎呀,我們甚至可以做Response.Write()+ Html助手,不需要那些泄漏的抽象。
你需要停止思考「X完成工作」。除了「有效」外,還有更多有關節目的內容。其他答案列出其中幾個,所以我不會重複。
0
這是測試,聽說過嘲笑嗎?
相關問題
- 1. IRepository定義在哪裏 - ServiceStack
- 2. IRepository與IRepository <T>
- 3. 的IRepository接口
- 4. IRepository vs ISession
- 5. 如何將IRepository <Invoice>和IRepository <Estimate>作爲IRepository <SalesTransaction>進行抽象?
- 6. UTF-16的意義何在?
- 7. IRepository - 實體實現
- 8. 通用資源庫 - IRepository <T>或IRepository
- 9. CastleWindsor + NHibernate + NCommon IRepository:如何自動註冊?
- 10. IRepository如何進行單元測試?
- 11. ASP.NET如何實現ObjectDataSource和IRepository
- 12. caddr_t的意義何在,何時使用?
- 13. IRepository <>和SOA在一起
- 14. 注漿IUnitOfWork到IRepository構造
- 15. 錯誤激活IRepository {}爲MyModel
- 16. MongoDB IRepository數據庫連接
- 17. IRepository和關係數據
- 18. 爲多個域實現IRepository
- 19. 我正確使用IRepository嗎?
- 20. 如何註冊IRepository到資源庫的所有對象在Unity
- 21. 添加額外div的意義何在?
- 22. 意義的'()=> {}`在ReactJS
- 23. 意義 - 在git的結帳
- 24. valueOf()在javascript中的意義
- 25. $和「」在mongodb中的意義
- 26. 意義_在適用()
- 27. 意義{}在java中
- 28. 意義在此行
- 29. 意義在Ruby中
- 30. 如何使用IRepository果園多場保存記錄在果園