![]() |
1
18
从功能角度、java复杂性或运行时角度来看,这不是一项任务。然而,它的编码标准被更广泛的社区所接受。甚至很多静态代码审查工具,如 checkstyle 许多其他人检查此类课程是否遵守了这一规定。 为什么遵循这一惯例,在其他答案中已经解释过,甚至OP也涵盖了这一点。 我想进一步解释一下,大多数实用程序类都具有独立于对象实例的方法/函数。这些是一种聚合函数。因为它们只依赖于返回值的参数,而与实用程序类的类变量无关。因此,这些函数/方法大多保持静态。因此,实用程序类是所有静态方法的理想类。 因此,任何调用这些方法的程序员都不需要实例化这个类。然而,一些机器人程序员(可能没有太多经验或兴趣)会倾向于在调用其方法之前创建他们认为需要的对象。为了避免创建对象,我们有三个选项:-
现在,如果有人想为这些实用程序类添加一些功能的新方法,他不需要扩展它,他可以添加新方法,因为每个方法都是独立的,而且不可能破坏其他功能。因此,无需重写它。而且你也不打算灌输,所以需要对它进行子类化。最好标记为最终。 总之,创建实用程序类的对象没有意义。因此,构造函数应该是私有的。你永远不想改写它,所以把它标记为最终。 |
![]() |
2
9
这不是必要的,但很方便。实用程序类只是相关函数的命名空间持有者,并不意味着要实例化或子类化。因此,防止实例化和扩展会向类的用户发送正确的消息。 |
![]() |
3
0
Java语言和Java运行时之间有一个重要的区别。
当java类被编译为字节码时,没有访问限制的概念,
大多数这样启用的优化不再相关,因为jvm现在将相同的优化应用于所有在运行时为单态的类,而这些总是最重要的。 |
|
4
-1
默认情况下,此类类通常用于聚合执行不同操作的函数。在这种情况下,我们不需要创建新对象 |
![]() |
Alex Pander · cleaner代码的嵌套命名空间[已关闭] 6 年前 |
![]() |
Jamil Noyda · 导入模块的最佳方式Python[复制] 6 年前 |
![]() |
Samselvaprabu · 我们是否需要不惜任何代价避免重复? 6 年前 |
![]() |
user9549524 · 基于一列的值从二维矩阵中提取值 6 年前 |
![]() |
MedAl · 不使用try/catch处理异常 7 年前 |
![]() |
Declan McKenna · 特殊情况模式在Swift中是否多余? 7 年前 |