Java 单例 Class 最终变量命名约定
Java Singleton Class Final Variable Naming Convention
我知道实例级 final
变量遵循驼峰式命名约定,但我想知道单例 Class 是否也应如此。
你会把 Singleton Class 中的 final
当作常量,并遵循如下常量命名约定:
private final SomeObject SOME_OBJECT;
或者,您会按照正常的变量命名约定以驼峰命名吗?
private final SomeObject someObject;
这在多次代码审查中不断出现,我总是有一些灰色地带。感谢对此的任何想法。
这是一个更多地基于社区意见而不是既定标准的主题。
如果是class级别,而且是final,而且只有一个实例,假设你把它当做常量使用,在我看来,我会用Underscore,因为它是基本上是一个常量,但它是在运行时初始化的。
class AClass {
private final SomeObject SOME_OBJECT;
private initInstance() {
SOME_OBJECT = ...;
}
...
}
这可能会有帮助 link:
https://softwareengineering.stackexchange.com/questions/252243/naming-convention-final-fields-not-static
这个 link 归结为,虽然任何答案都是自以为是的,但一个好的启发式方法是问问自己 "is this behaving like a constant? or is it behaving like a write once field?"
如果它是在运行时创建的常量,DO_THIS
。
如果它是您写入一次但稍后操作的字段,doThis
。
根据典型的 Java 编码标准和约定,ALL_CAPS 标识符样式保留给 static final
常量(和 enum
常量 ...)。在您的情况下,变量是 final
而不是 static
,因此变量的正常规则的例外情况不适用。
这是我的解释,也是(我认为)最常见的解释。这不是唯一的解释。您和您的团队可以选择以不同方式解释约定,甚至完全忽略它们1.
最重要的是在您/您的团队/您组织的通用代码库中保持一致。
1 - ...虽然后者是 不明智的,IMO,
我知道实例级 final
变量遵循驼峰式命名约定,但我想知道单例 Class 是否也应如此。
你会把 Singleton Class 中的 final
当作常量,并遵循如下常量命名约定:
private final SomeObject SOME_OBJECT;
或者,您会按照正常的变量命名约定以驼峰命名吗?
private final SomeObject someObject;
这在多次代码审查中不断出现,我总是有一些灰色地带。感谢对此的任何想法。
这是一个更多地基于社区意见而不是既定标准的主题。
如果是class级别,而且是final,而且只有一个实例,假设你把它当做常量使用,在我看来,我会用Underscore,因为它是基本上是一个常量,但它是在运行时初始化的。
class AClass {
private final SomeObject SOME_OBJECT;
private initInstance() {
SOME_OBJECT = ...;
}
...
}
这可能会有帮助 link: https://softwareengineering.stackexchange.com/questions/252243/naming-convention-final-fields-not-static
这个 link 归结为,虽然任何答案都是自以为是的,但一个好的启发式方法是问问自己 "is this behaving like a constant? or is it behaving like a write once field?"
如果它是在运行时创建的常量,DO_THIS
。
如果它是您写入一次但稍后操作的字段,doThis
。
根据典型的 Java 编码标准和约定,ALL_CAPS 标识符样式保留给 static final
常量(和 enum
常量 ...)。在您的情况下,变量是 final
而不是 static
,因此变量的正常规则的例外情况不适用。
这是我的解释,也是(我认为)最常见的解释。这不是唯一的解释。您和您的团队可以选择以不同方式解释约定,甚至完全忽略它们1.
最重要的是在您/您的团队/您组织的通用代码库中保持一致。
1 - ...虽然后者是 不明智的,IMO,