比如一个菜单type属性有三种值型 0目录 1菜单 2按钮 往往当得到一个菜单对象的时候就会更具type属性去判断所具有的功能和状体,一般会认为地去盘算==0,==1,==2去做处理,这样代码质量差,并且判断参考没有明文规定规则,而是仅仅根据设想可能存在值去判断,这种值数不确定,这时需要铭文来确定有限的判断规则,符合对象的有限封装,通过枚举类来指向属性来说明有多少种值的存在,进行归纳和规范来避免在所有情况都要处理逻辑判断时遗漏每一种情形,导致逻辑不完整有枚举直接就可以参考所有情况,枚举类可以定义一个Constant类中
public enum MenuType {
/**
* 目录
*/
CATALOG(0),
/**
* 菜单
*/
MENU(1),
/**
* 按钮
*/
BUTTON(2);
private int value;
MenuType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
在有对象做业务判断时候
if(menu.getType() == Constant.MenuType.MENU.getValue()){
if(StringUtils.isBlank(menu.getUrl())){
throw new RRException("菜单URL不能为空");
}
}
总结:
如果一个对象的属性是有限的值类型就可以通过不同值判断不同的业务可以使用枚举来标准化判断而不是认为他是0就代表处理一个业务逻辑,而是参考话做有意义的判断这是可以使用枚举菜单。