2020 为什么代码中最好不要出现硬编码?如何避免?
为什么代码中最好不要出现硬编码?如何实现?
什么是硬编码?
硬编码是指将可变变量用一个固定值来代替的方法。简单来说就是目标固定值写死,不可改变。比如:
if(a==2){
System.out.println("2就是硬编码");
}else if(a==SysConstast.STATUS_TRUE){ //赋值为1
System.out.println("SysConstast.STATUS_TRUE就是自己定义的常量");//可以自定义常量类
}
如果项目代码中存有有大量的硬编码,到后期维护修改的成本就会很高,代码的拓展灵活性就会很差,不易于有效性维护。
改变的方法就是自定义个常量的接口类,把通用的数据赋值到里面。
建一个接口public interface SysContast{}
public interface SysConstast {
String USER_LOGIN_ERROR_MSG = "用户名或密码不正确";
String USER_LOGIN_CODE_ERROR_MSG = "验证码不正确";
/** * 可用状态 */
Integer AVAILABLE_TRUE = 1;
Integer AVAILABLE_FALSE = 0;
/** * 操作状态 */
String ADD_SUCCESS = "添加成功";
String ADD_ERROR = "添加失败";
String UPDATE_SUCCESS = "更新成功";
String UPDATE_ERROR = "更新失败";
String DELETE_SUCCESS = "删除成功";
String DELETE_ERROR = "删除失败";
把项目需要的常量赋值进去。
使用:
在controller类里编写
@RequestMapping("login")
public String login(User user,Model model){
if(null!=user){
//此处编写登录功能代码
}else { //登录失败
//需要返回失败信息给前端页面的error
model.addAttribute("error", SysConstast.USER_LOGIN_ERROR_MSG);//直接使用 接口名.属性
}
return "";
}
这样就可以避免写死,后期如果需要修改可以直接到接口里维护。
推荐
idea使用逆向工程Mybatis Generator生成代码
学生如何白嫖获得idea许可证?
为什么有了实体类pojo还要建一个实体类Vo来继承extend?
还没有评论,来说两句吧...