Java小结第一篇(枚举应用)

菜鸟新篇

  实习期结束了,写过那么多代码,最近等毕业答辩,有空余时间,也有动力,来回忆开发过程的点点滴滴,权当为自己做总结,积累自己的代码库.若您觉得内容太浅,希望您给予我些许点拨,我将感激不尽,助人者必有好报.
  从能想起来的最近的往回倒推吧.
  相信很多人有过这样的经历,特别是做j2ee(B/S)的时候, 当从页面传过来一个参数,无论是servlet或者struts框架等等,我们都需要先判断这个值是否安全,例如:

String param=request.getParameter("param");
if(param==null ||  "".equals(param)){
      doSth();
}else{
        doSth();
}
||短路符,当第一个判断是true,则不进行下一个运算,
下面这种写法我觉得也不会出问题的
if( "".equals(param)    ||  param==null    ){      
      doSth();
}else{
        doSth();
}
当然可以利用struts的intercepter和validate将这些操作封装起来,以供复用
安全性检查完了,接下来要进行功能性校验了
如果我们的需求是 根据传递过来的值判断执行哪一个业务流,
可以用if("sth".equals(param)){doSth()}
如果需要判断的业务流有很多等等,如果都用上面的方式,那么代码一定会很乱,而且复用性,健壮性,可移植性,可修改性等等都很差,
那么就需要一个很好的解决办法,这里用到了jdk1.5以后的枚举类型
public enum Field {
        error(0),postcode(1), email(2), telephone(3), mobile(4),address(5);

        Field(int value) { this.value = value; } 

        private final int value;

        public int value() { return value; }

    }

//利用枚举匹配页面端传过来的field名字
		Field field=Field.error;//默认值为失败
		for(Field f:Field.values()){
			if(f.toString().equals(param.trim())){
				field=f;//返回匹配的名字
				break;
			}
		}
		//switch选择相应的field,并调用相应的代码
		switch(field){
		case email:{
			do............
			break;
		}
		case telephone:{
			do............
			break;
		}
		case mobile:{
			do............
			break;
		}
		case postcode:{
			do............
			break;
		}
		case address:{
			do............
			break;
		}
		default:break;
		}

 

可以封装成接口,方便调用

你可能感兴趣的:(java,框架,struts,F#,mobile)