我可以在业务逻辑中使用静态类吗?

时间:2017-02-16 12:30:46

标签: c# asp.net-mvc design-patterns architecture static

这可能是一个重复的问题,但让我们谈谈像WEB API,ASP.NET,WCF这样的无状态应用程序。所有这些都是状态较少的应用。那么,我可以在业务逻辑中使用静态类。由于静态应用程序将更快地工作。

在我们的ASP.NET MVC应用程序中,我们有单独的业务逻辑项目(Library)。因为我们正在使用静态类。这是静态

的好方法吗?

3 个答案:

答案 0 :(得分:2)

使用静态类有一个很大的缺点:它们非常难以模拟单元测试(甚至单元测试更难,取决于所使用的框架)。甚至模拟静态方法也很困难。静态类没有真正的优势,所以答案是:不要将静态类用于业务逻辑。不要将静态方法用于商业方法。

答案 1 :(得分:0)

下, 因为当你使用静态类时,这意味着你不想创建类的实例,这是业务逻辑的后例。

答案 2 :(得分:0)

由于以下几个原因,它并不好:

  1. 静态类无法实例化并保存未共享的状态,因此基本上可以杀死OOD原则。
  2. 因为静态无法保存状态并被实例化,所以通常方法的签名会更复杂,代码会更混乱。
  3. 当有很多静态代码并进行代码复制时,它更容易出错。
  4. 当您经常编写静态代码时,更难以保持项目边界正确。
  5. 简而言之,尽量避免使用静态代码,除非它像扩展方法那样喊“静态”等等。清洁代码和固体原则可以让您更深入地了解为什么要避免它。