掌柜大作战(16):Java中定义常量的4种形式,总有一种适合你

版权声明:襄阳雷哥的版权声明 https://blog.csdn.net/FansUnion/article/details/83654582

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月
北京-亦庄
 

猜你喜欢

转载自blog.csdn.net/FansUnion/article/details/83654582
今日推荐