2010-02-01 46 views

回答

5

兩個原因:

  1. 測試。你可以模擬你的版本庫接口並將它傳遞給依賴於你的版本庫的所有方法(這只是任何訪問數據層的控制器)。這反過來又允許你正確地測試,從真實的數據庫或數據源中分離出來。

  2. 繼承。您可以傳遞庫接口而不是類類型,從而允許您在繼承樹的各個層次上擁有異構數據源,但仍可保證存在相同的功能。這與「抽象類與接口」在任何時候都是相同的論點,但它也是這樣。

1

Repository模式背後的重要思想是,您可以通過一種方式來查詢並保存對象,而無需知道它們的存儲方式。

這很有用,因爲您可以將UI和流模型與對象的存儲,緩存和檢索方式分離。這允許更大的能力獨立地測試UI層和更低層,獨立處理它們並獨立服務它們。

最成熟的對象關係映射(ORM)框架允許您執行此操作。

1

我想我會因爲這個(像往常一樣沒有真正的幫助答案)而被低估,但是MVC究竟有什麼意義呢?我們不能直接在頁面中編寫正確的代碼,很好的ASP風格嗎?哎呀,我們甚至可以做Response.Write()+ Html助手,不需要那些泄漏的抽象。

你需要停止思考「X完成工作」。除了「有效」外,還有更多有關節目的內容。其他答案列出其中幾個,所以我不會重複。

0

這是測試,聽說過嘲笑嗎?