关于C#和静态类和函数的一个问题

Mic*_*cah 5 c# static database-connection

我在这里看到了很多关于这个主题的讨论.

如果我有一个静态类w /静态方法连接到数据库或服务器,在多用户环境(如网页)中使用它是不是一个坏主意?这是否会让新用户在接受新用户之前等待以前用户的线程完成他们的呼叫?

多线程也会带来什么影响呢?

谢谢!

Mic*_*ows 6

如果每个静态方法完全负责获取其资源,然后将其资源置于方法调用的范围内(没有共享状态),那么使用实例类时不应该遇到线程问题.但是,我建议,更大的问题是依赖公共静态方法(在静态或非静态类中)会在未来产生许多其他设计问题.

  • 首先,你对一个实现非常紧密地绑定,这总是很糟糕.
  • 其次,测试依赖于静态方法的所有类变得非常困难,因为您已经锁定了单个实现.
  • 第三,创建非线程安全方法变得非常容易,因为静态方法只能具有静态(在所有方法调用中共享).