Helper和Utility类有什么区别?

如何确定如何调用一个类XHelper或XUtils?

在我心里 :

助手类 ,是一个可以实例化并做一些业务工作的类

Utils类是一种静态类,它对一类实例执行小的重复操作(例如,来自Apache的utils类ArrayUtils或IOUtils)

有很多命名风格可供使用。 我build议Utils只是因为它更常见。

Utility类被理解为仅具有静态方法并且是无状态的。 你不会创build这样一个类的实例。

助手可以是实用程序类,也可以是有状态的或需要创build实例。 如果可能,我会避免这种情况。

如果你能使名字更具体。 例如,如果它有sorting方法,使它XSorter

对于数组,你可以find类似的帮助类

 Array Arrays ArrayUtil ArrayUtils ArrayHelper 

顺便说一句,实用程序类是一个没有实例的枚举

 enum XUtils {; static methods here } 

如果你需要实现一个接口,我会使用一个无状态的Singleton。

 enum XHelper implements RequiredInterface { INSTANCE; // no instance fields. } 

一般来说? 这完全是任意的。 这没有规则。

这没有最终的答案。 找出一个命名scheme并坚持下去。 命名你的软件包和类是软件架构的重要组成部分,没有人可以从你的决定。

我个人更喜欢XHelper,但是我更多地在外部代码中看到XUtils。

我也喜欢JDK和Guava中的“复数”命名scheme:

如果一个类处理的是Collection对象,则称为Collections

数组>数组(jdk)
列表>番石榴(Guava)
地图>地图(番石榴)

等等