gpt4 book ai didi

c# - 静态类库的替代品

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:50 24 4
gpt4 key购买 nike

我有大量静态“实用程序”类,其中包含非常通用的静态方法。例如,我有一个 CollectionUtility 类,它具有如下有用的方法:

public static void RemoveDuplicates(ICollection collection)...等

在 C# 3.0 中,我一直在将它们转换为扩展方法。

现在,我听说在“企业级”应用程序中,通常认为最好的做法是避免使用这些静态类和方法的大型库。我想它会变得很难维护。

对于那些为大公司从事大型企业项目的人来说,有一个问题 - 你们是否维护这些实用程序类的库?你是做什么的?

最佳答案

您谈论的是共享库内容的代码。静态方法确实在共享库中占有一席之地。查看 System.Linq.Enumerable

我会遵循这些准则:

  • 默认情况下这些不是静态方法。它们应该只是静态方法,因为它们自然是无状态的(行为仅取决于参数)。如果它们不是天生无状态的,那么您应该创建一个适当的类来管理该状态。
  • 用单元测试覆盖这些。如果您不对其他任何内容进行单元测试,请对这些进行单元测试。这应该非常容易做到。如果这不容易,那是不对的。

如果你喜欢依赖注入(inject),你仍然可以拥有它。依赖于静态方法的代码可以改为调用 Func(T, U) 或引用该静态方法的 Action。

关于c# - 静态类库的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/185185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com