C# 用于杂项功能的静态类的理想类名

C# 用于杂项功能的静态类的理想类名,c#,naming-conventions,classname,C#,Naming Conventions,Classname,什么是我的静态类的理想类名,它有一些静态方法来处理一般/常见的功能,如备份、保存最近的项目等。。C#中的(实际杂项项目)。我希望将Manager作为类名的后缀(例如:SaleManager(处理与销售相关的功能),ContatManager(处理与联系人相关的功能)UtilityManager.?事实证明,“Utility”是有争议的,而“Math”是有争议的不是。因此,这个名称似乎应该暗示静态类中方法的整体功能。我的一般感觉是不应该有这样一个通用类。特别是电子邮件很可能扩展到不仅仅是sendm

什么是我的静态类的理想类名,它有一些静态方法来处理一般/常见的功能,如备份、保存最近的项目等。。C#中的(实际杂项项目)。我希望将Manager作为类名的后缀(例如:SaleManager(处理与销售相关的功能),ContatManager(处理与联系人相关的功能)

UtilityManager.?

事实证明,“Utility”是有争议的,而“Math”是有争议的不是。因此,这个名称似乎应该暗示静态类中方法的整体功能。

我的一般感觉是不应该有这样一个通用类。特别是电子邮件很可能扩展到不仅仅是sendmail()方法,坦率地说,
新电子邮件({to,subject,body})。Send()
更有OO意义。

没有人可以做这种事情。这被认为是一种反模式。

重构管理器。

即使对于静态类(顺便说一句:我更喜欢XxxHelper后缀),我也会坚持这个范例“”并且不会在一个类中混合使用不同的实用程序。

以下是一些执行这些类型操作的.NET Framework类:

  • 系统、环境
  • 系统,数学
  • System.IO.File文件
  • System.IO.Directory
  • System.IO.Path
  • System.Runtime.InteropServices.Marshal
如您所见,例程按主题分组到类中,没有一个类附加了“Helper”或“Utilities”。下面是我创建的一些类,它们执行这些类型的操作:

  • SymbolicMath(与数学类类似,但用于处理符号数学表达式)
  • BigIntegerMath(使用System.Numerics.BigInteger类型的大整数算术库-素性证明、因子分解和其他一些东西)
如果您有一个实用工具(或实用工具管理器)类,它有很多静态方法,那么它确实是一个反模式,应该立即进行重构

然而,有些东西只是实用程序,人们不应该不把它们放在一个单独的实用程序类中(我个人最喜欢的)。是的,这为各种丑陋的场景打开了大门,人们必须掌握控制权,否则任何事情和一切都会在那里结束,是的,有必要这样做如果需要,可以将方法“升级”到它们自己的类(通常是XXXHelper),但是,尽管如此,我发现Utilities类是一个有用的构造,而不是一个反模式。模式毕竟是一个建议,它们不是宗教:)

管理器作为此类类的后缀令人困惑,因为该类实际上并不管理任何东西。

Tools
Utils

扩展(如果你只在那里放了扩展方法(C#))

长寿
内部静态类Utils

我想你应该看看这里:也可以看到是的。对于这个例子,我只是这样提过,从现在的问题中去掉了-1幽默,但不是特别幽默enlightening@Robert-没有启发?我会说那是禅宗。