我有大量包含非常通用的静态方法的静态“实用程序”类。例如,我有一个 CollectionUtility 类,它具有有用的方法,例如:
公共静态无效 RemoveDuplicates(ICollection 集合)...等
在 C# 3.0 中,我一直在将这些转换为扩展方法。
现在,我听到一些谈话,在“企业级”应用程序中,通常认为最好的做法是避免使用这些静态类和方法的大型库。我想它可能很难维护。
对于那些为大公司从事大型企业项目的人来说,一个问题 - 你是否维护这样的实用程序类库?你是什么?
您正在谈论将成为共享库内容的代码。静态方法确实在共享库中占有一席之地。查看 System.Linq.Enumerable
我会遵循以下准则:
如果依赖注入是你喜欢的东西,你仍然可以拥有它。依赖静态方法的代码可以改为调用 Func(T, U) 或引用该静态方法的 Action。
绝对不。随着时间的推移,实用程序模块会变成大量粗糙的代码。
我通常只将配置和常量之类的东西放在单例或静态类中,因为它永远不会改变,也可能是“全局的”。
我听过一些谈话,在“企业级”应用程序中,通常认为最好的做法是避免使用这些静态类和方法的大型库。我想它可能很难维护。
恕我直言,您应该应用泛型之类的东西来减少实用方法/库的大小,如果您只在一个地方使用实用方法,那么它不属于共享库,但归根结底你仍然可能有很多。
无论如何,这让我感到困惑。如果您没有将它们放在共享库中,您会将它们放在哪里?复制/粘贴到每个项目或类似的东西?