如何确定如何调用类 XHelper 或 XUtils?
在我看来:
Helper class ,是一个可以实例化并做一些业务工作的类
Utils 类 是一个静态类,它对一类实例执行小型的重复操作(例如 Utils 类 ArrayUtils 或 Apache 中的 IOUtils)
一般来说? 这完全是随意的,没有任何规定。
这个问题没有终极答案。找出一个命名方案并坚持下去。给软件包和类命名是软件体系结构的一个重要组成部分,没有人能够阻止您做出这样的决定。
我个人比较喜欢 XHelper,但是我更经常在外部代码中看到 XUtils。
我还喜欢 JDK 和 番石榴中的“复数”命名方案:
如果一个类处理 Collection对象,它被称为 Collections
Collection
Collections
数组 > 数组(jdk) 名单 > 名单(番石榴) 地图 > 地图(番石榴)
等等。
有许多命名样式可以使用。我建议使用工具,因为它更常见。
Utilityclass 被理解为只有静态方法并且是无状态的。您不会创建这样一个类的实例。
Helper 可以是实用工具类,也可以是有状态的,或者需要创建实例。如果可能的话,我会避免这种情况。
如果您可以使名称更具体。例如,如果它有排序方法,使其 XSorter
对于数组,您可以找到如下帮助类
Array Arrays ArrayUtil ArrayUtils ArrayHelper
顺便说一句,实用程序类的简写是一个没有实例的枚举
enum XUtils {; static methods here }
如果您需要实现一个接口,我会使用一个无状态的 Singleton。
enum XHelper implements RequiredInterface { INSTANCE; // no instance fields. }
实用程序是一个通用的“叶节点”类。也就是说,它没有任何依赖关系到您的项目,可以从一个项目移植到另一个项目,而不会中断或变得无用。例如: Vector3、 RandomNumberGenerator、 StringMatcher等等。.
Vector3
RandomNumberGenerator
StringMatcher
“助手”似乎是任何设计用来帮助另一个类的类。这些可能取决于您的项目,也可能不取决于您的项目。如果您正在创建一个 GameNetworkClient类,您可以说 GameNetworkConnection类是一个“助手”,因为它“帮助”了 GameNetworkClient。
GameNetworkClient
GameNetworkConnection
开发人员引用工具的方式反映了这些词的常用用法。如果你能回忆起听觉工具被描述为“有用的”或“有用的”,一个有用的工具往往有一些背景(奶酪磨碎机帮助磨碎奶酪,玉米剥皮帮助剥离玉米,速度装载机帮助重新装填枪支)。一个“实用程序”预计将在各种背景下工作(WD-40,管道胶带,军刀,胶水,手电筒,等等。.).
正如杰斯珀所说,这是 完全随心所欲。你可以想想什么对你的组织有效,并使之成为惯例。
对我来说,是这样的:
Utils -静态类,可以在任何地方自由移动和导入。
正如 Peter Lawrey 所说,更多的 具体的名字是有用的。
Helper -类 帮忙另一个类或模块。
任务只能在它放置的模块中使用,并且没有意义导入到其他地方。因此,名称可以更具体-< em > ModuleName Helper(例如,行政助理,登入助手)