Java开发中,经常通过接口和枚举来定义常量。
Java中定义常量的4种形式,总有一种适合你。
方式一:
/**
* 各种常量定义
*/
public interface RedisConstants1{
String SEPARATOR = ",";
String DOMAIN = "app.domain.url";
/**
* 订单金额规则,最大值和最小值
*/
String RULES_ORDER_AMOUNT_MAX = "bean.rules.order.amount.max";
String RULES_ORDER_AMOUNT_MIN = "bean.rules.order.amount.min";
/**
* 用户
*/
String USER_NAME = "app.user.name";
String USER_TOKEN = "app.user.token";
}
当常量过多的时候,这种方式看起来比较类,引用常量容易出错。
因此,不少人通过前缀的方式来区分不同业务场景的常量,“RULES_”、“USER_”等。
方式二:
部分开发人员,针对每种业务场景,定义单独的常量,比如:
CommonConstants、RulesConstants、UserConstants。
方式三:
看到一个同事是这么定义常量的,个人比较喜欢这种方式。
接口中内置接口定义常量,方便区分常量所属的业务分类。
/**
* 各种常量定义
*/
public interface RedisConstant3 {
String SEPARATOR = ",";
String DOMAIN = "app.domain.url";
/**
* 订单金额规则,最大值和最小值
*/
interface Bean {
String RULES_ORDER_AMOUNT_MAX = "bean.rules.order.amount.max";
String RULES_ORDER_AMOUNT_MIN = "bean.rules.order.amount.min";
}
/**
* 用户
*/
interface User {
String NAME = "app.user.name";
String TOKEN= "app.user.token";
}
}
看到这种内部类的方式,让我想起来,一些开源组件中,也习惯在某个 类中再定义一个常量接口,大致如下:
pulibc class User{
void findUser(Integer userSex);
Sex{
int man = 1;
int woman = 2;
}
}
user.findUser(User.Sex.man);
方式四:建立自定义枚举类。
public enum YnEnum {
YES(1,"正常"),NO(0,"删除"),;
private Integer code;
private String remark;
private YnEnum(Integer code,String remark) {
this.code = code;
this.remark = remark;
}
//getter和setter方法
}
小雷FansUnion-程序员一枚
2017年10月
北京-亦庄