如何确定如何调用类XHelper或XUtils?
在我心里 :
Helper类,是可以实例化并完成一些业务工作的类
Utils类是一个静态类,它对一种实例执行小的重复性操作(Apache的utils类ArrayUtils或IOUtils的示例)
如何确定如何调用类XHelper或XUtils?
在我心里 :
Helper类,是可以实例化并完成一些业务工作的类
Utils类是一个静态类,它对一种实例执行小的重复性操作(Apache的utils类ArrayUtils或IOUtils的示例)
Answers:
有很多命名样式可供使用。我建议Utils只是因为它比较常见。
Utility类应理解为仅具有静态方法并且是无状态的。您不会创建此类的实例。
Helper可以是实用程序类,也可以是有状态的,或者需要创建实例。如果可能,我会避免这种情况。
如果可以使名称更具体。例如,如果它具有排序方法,则将其命名为XSorter
对于数组,您可以找到诸如
Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper
顺便说一句,实用程序类的简称是一个没有实例的枚举
enum XUtils {;
static methods here
}
如果您需要实现一个接口,我将使用无状态的Singleton。
enum XHelper implements RequiredInterface {
INSTANCE;
// no instance fields.
}
实用程序是一般使用的“叶节点”类。也就是说,它与您的项目没有任何依赖性,可以在不中断或变得无用的情况下从一个项目移植到另一个项目。例如:Vector3,RandomNumberGenerator,StringMatcher,等...
“帮助者”似乎是其设计旨在帮助另一类的任何类。这些可能取决于也可能不取决于您的项目。如果要创建一个GameNetworkClient类,则可以说GameNetworkConnection该类是“帮助器”,因为它“帮助”了GameNetworkClient。
开发人员引用工具的方式反映了这些词的常用用法。如果您可以回忆起被描述为“有用”与“有用”的助听器,那么有用的工具往往具有一定的背景(奶酪刨丝器有助于磨碎奶酪,玉米剥皮器有助于剥皮玉米,快速装载器有助于重新装填枪支)。“实用程序”有望在多种情况下工作(WD-40,胶带,军刀,胶水,手电筒等)。
没有最终答案。找出一种命名方案并坚持下去。命名包和类是软件体系结构的重要组成部分,没有人可以放弃您的决定。
我个人更喜欢XHelper,但是在外来代码中我更经常看到XUtils。
我也喜欢在JDK和Guava中都可以找到的“多个”命名方案:
如果一个类处理Collection对象,则称为Collections
数组>数组(jdk)
列表>列表(番石榴)
映射>映射(番石榴)
等等
Utils静态类用于组织中或组织中的任何地方都是有用的约定。甲Helper类有共同的代码,其可以被重新使用的项目中,并具有在项目中的依赖关系。当然,没有公认的规则,但是我发现这很有用。