为什么数据存储库不是静态的?

我正在查看ASP.NET MVC应用程序的repository方法,并注意到没有使用static类。

由于回购是CRUD ,为什么不让它static

1)使用静态类进行unit testing很困难(如果您正在测试依赖于您的存储库的类,那么您希望该测试针对假的’模拟’存储库对象而不是真实存储库对象)

2)您经常希望每个请求有一个存储库实例,以便更容易确保来自一个用户的未经更改的更改不会让另一个用户搞砸了。

存储库模式增加可测试性,静态类别减少它。