我的存储库方法不应该是静态的吗?

Met*_*uru 7 asp.net-mvc static repository

我一直在使用MVC应用程序并创建操作,验证,更新和读/写数据的存储库.所有这些都是静态的.这是一个例子:

public static int Create(user u)
{
      using(DataContext db = new DataContext())
      {
          //do the thing and submit changes...
      }

      //return the new user id
}
Run Code Online (Sandbox Code Playgroud)

(注意:这只是一个示例,我不是在寻找有关创建用户或返回用户ID的提示等)

然后我就可以打电话了 int id = RepoClassName.Create(userVariable);

使用像这样的静态方法有什么问题吗?我只是不明白为什么我需要实例化一个对象来做到这一点.

Den*_*aub 5

好吧,如果您不打算解耦、测试和轻松维护您的“存储库”,我想静态就可以了。

如果您想更多地了解为什么将静态方法视为代码异味,请参阅 Google 测试博客上的一篇不错的文章。当然,这假设您完全关心测试您的代码。

但是,嘿,现在是 2011 年,谁不会呢!

  • 我不明白。想详细说明?每个人似乎都说了同样的话,实际上并没有解释什么。 (3认同)