如何更好的设计常量?

参考《阿里巴巴 Java开发手册》

// 不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
// 正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。

// 子工程内部共享常量:即在当前子工程的 constant 目录下。
// 内共享常量:即在当前包下单独的 constant 目录下。
// 如果常量是类内共享,则直接在类内部 private static final 定义

// 如何使用常量?(参考下面几个)
// com.alibaba.dubbo.common.Constants
// org.apache.commons.collections.functors.ConstantFactory
// com.mysql.cj.Constants

// 如果常量类不被继承,或其他用途,可以定义为public final class Constants {},来保证不会被继承,不会重写
// final类可以实例化,参考String类
// 一个好的常量设计(不被继承, 不会重写, 不会从外部实例化)
public final class Constants {
	public static final String PROVIDER = "provider";

	public static final String CONSUMER = "consumer";
	
	/**
	 * 阻止实例化
	 * 
	 * Prevents instantiation
	 */
	private Constants() {}
}
上一篇:java – 编译时常量和变量


下一篇:如何在Python中创建常量?