IRepository有什么意义?

use*_*261 2 asp.net-mvc

有什么意义呢?它只是添加了您需要编写的更多代码,这对于在添加IRepository之前无法执行的应用程序实际上没有任何作用.

wom*_*omp 5

几个原因:

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

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