Helper和Utility类有什么区别?

jak*_*cam 101 java

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

在我心里 :

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

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

Pet*_*rey 84

有许多命名样式可供使用.我建议Utils只是因为它更常见.

实用程序类被理解为只具有静态方法并且是无状态的.您不会创建此类的实例.

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

如果你可以使名称更具体.例如,如果它有排序方法,请将其设为XSorter

对于数组,您可以找到辅助类

Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper
Run Code Online (Sandbox Code Playgroud)

BTW实用程序类的简写是没有实例的枚举

enum XUtils {;
    static methods here
}
Run Code Online (Sandbox Code Playgroud)

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

enum XHelper implements RequiredInterface {
   INSTANCE;
   // no instance fields.
}
Run Code Online (Sandbox Code Playgroud)


Jam*_*Lay 17

实用程序是一般用途的“叶节点”类。也就是说,它对您的项目没有任何依赖,并且可以从一个项目移植到另一个项目而不会破坏或变得无用。例如:Vector3RandomNumberGeneratorStringMatcher,等...

“帮助者”似乎是任何旨在帮助另一个类的类。这些可能取决于您的项目,也可能不取决于您的项目。如果你正在创建一个GameNetworkClient类,你可以说这个GameNetworkConnection类是一个“帮手”,因为它“帮助”了GameNetworkClient.

开发人员提到工具的方式反映了这些词的常见用法。如果您能回忆起被描述为“有用”与“有用”的听力工具,那么有用的工具往往有一些上下文(奶酪刨丝器有助于磨碎奶酪,玉米剥皮器有助于剥玉米,速度装弹器有助于重新装填枪支)。预计“实用程序”可在各种环境中使用(WD-40、胶带、军刀、胶水、手电筒等)。


Jes*_*per 13

一般来说?这完全是武断的.对此没有规定.


typ*_*n04 7

正如 Jesper 所说,这完全是任意的。您可以考虑什么对您的组织有效,并将其作为惯例。

对我来说,它是这样的:

utils - 静态类,可以在任何地方自由移动和导入。

执行可能在不同模块中有用的一般任务。正如 Peter Lawrey 所说,更具体的名称很有用。

helper -帮助另一个类或模块的类。

仅在其放置的模块中使用的任务,在其他地方导入没有意义。因此名称可以更具体 - ModuleName Helper(例如AdministrationHelperLoginHelper