IRepository有什么意义?

时间:2010-02-01 05:27:52

标签: asp.net-mvc

有什么意义?它只是添加了你需要编写的更多代码,这对于在添加IRepository之前无法完成的应用程序没有任何作用。

4 个答案:

答案 0 :(得分:5)

有几个原因:

  1. 测试。您可以模拟存储库接口并将其传递给依赖于存储库的所有方法(这将是访问数据层的任何控制器)。这反过来允许您正确测试,与真实数据库或数据源分离。

  2. 继承。您可以传递存储库接口而不是类类型,允许您在继承树的各个级别拥有异构数据源,但仍然保证存在相同的功能。这与“抽象类与接口”在任何时候都是相同的论点,但它也在这里。

答案 1 :(得分:1)

Repository模式背后的一个重要思想是,您可以获得查询和保存对象的方法,而无需知道它们的存储方式。

这很有用,因为您可以将UI和流模型与对象的存储,缓存和检索方式分离开来。这样可以更高的能力独立测试UI层和下层,独立处理它们,并独立地为它们提供服务。

大多数成熟的对象关系映射(ORM)框架允许您执行此操作。

答案 2 :(得分:1)

我想我会因此而被投票(通常是我的非实际帮助答案),但无论如何,MVC有什么意义呢?难道我们不能只将代码编入页面,好旧的ASP风格?哎呀,我们甚至可以做Response.Write()+ Html助手,不需要那些漏洞抽象。

你需要停止思考术语“X完成工作”。关于程序的更多内容除了“它有效”。其他答案列出了其中几个,所以我不再重复了。

答案 3 :(得分:0)

这是用于测试,有没有听说过嘲笑?