如何确定如何调用类XHelper或XUtils?
在我看来:
帮助程序类,是一个可以实例化并进行一些业务工作的类
Utils类,是一个静态类,可以对一种实例执行小的重复操作(例如,来自Apache的utils类ArrayUtils或IOUtils)
答案 0 :(得分:78)
有许多命名样式可供使用。我建议Utils只是因为它更常见。
实用程序类被理解为只有静态方法并且是无状态的。你不会创建这样一个类的实例。
帮助程序可以是实用程序类,也可以是有状态的,或者需要创建实例。如果可能,我会避免这种情况。
如果您可以使名称更具体。例如如果它有排序方法,请将其设为XSorter
对于数组,您可以找到辅助类,如
Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper
BTW实用程序类的简写是没有实例的枚举
enum XUtils {;
static methods here
}
如果你需要实现一个接口,我会使用一个无状态的Singleton。
enum XHelper implements RequiredInterface {
INSTANCE;
// no instance fields.
}
答案 1 :(得分:10)
一般情况下?这完全是武断的。对此没有规定。
答案 2 :(得分:2)
对此没有最终答案。弄清楚一个命名方案并坚持下去。命名您的包和类是软件架构的重要组成部分,没有人可以从您那里做出决定。
我个人更喜欢XHelper,但我在外国代码中经常看到XUtils。
我也喜欢你在JDK和Guava中找到的“复数”命名方案:
如果某个类处理Collection
个对象,则称为Collections
数组>数组(jdk)
列表>列表(番石榴)
地图>地图(番石榴)
等
答案 3 :(得分:2)
正如Jesper所说,这完全是任意的。您可以考虑对您的组织有效的方法,并制定相应的约定。
对我来说,就像这样:
实用程序-静态类,可以在任何地方自由移动和导入。
执行在不同模块中可能有用的常规任务。正如彼得·劳瑞(Peter Lawrey)所说,更多的特定名称很有用。
助手-类帮助另一个类或模块。
仅在其放置的模块中使用的任务,将其导入其他位置没有意义。因此,该名称可能更具体- ModuleName Helper (例如, AdministrationHelper , LoginHelper )
答案 4 :(得分:1)
实用程序是一般使用的“叶节点”类。也就是说,它与您的项目没有任何依赖性,可以在不中断或变得无用的情况下从一个项目移植到另一个项目。示例:Vector3
,RandomNumberGenerator
,StringMatcher
等...
“帮助器”似乎是任何旨在帮助另一个类的类。这些可能取决于也可能不取决于您的项目。如果要创建GameNetworkClient
类,则可以说GameNetworkConnection
类是一个“帮助器”,因为它“帮助”了GameNetworkClient
。
开发人员引用工具的方式反映了这些词的常用用法。如果您可以回忆起被描述为“有用”与“有用”的助听器,那么有用的工具往往具有一定的背景(奶酪刨丝器有助于磨碎奶酪,玉米剥皮器有助于剥皮玉米,快速装载器有助于重新装填枪支)。预计“实用程序”将在多种情况下工作(WD-40,胶带,军刀,胶水,手电筒等)。