代码优化---拒绝写死代码

博客探讨了如何优化Java代码,包括Controller层的返回值封装以减少硬编码,JSR303进行后端数据验证,以及全局异常处理来统一管理错误响应。此外,还介绍了通用的Key生成策略,以提高项目的可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Controller 层返回值封装

对返回结果封装能够有效的减少硬编码。提升开发效率,方便维护。以前如果我们不对返回结构进行封装就是直接 return 一个状态码啥的。实在不雅观

Result
这是对返回结果封装的一个类

package com.cpc.miaosha_02.result;

/**
 * 这是类是对返回结果进行处理的类主要的目的是同样返回的结果
 * @param <T>
 */
public class Result<T> {
   
   

	//状态码
	private int code;
	//说明
	private String msg;
	//实际数据
	private T data;
	
	/**
	 *  成功时候的调用
	 * */
	public static  <T> Result<T> success(T data){
   
   
		return new Result<T>(data);
	}
	
	/**
	 *  失败时候的调用
	 * */
	public static  <T> Result<T> error(CodeMsg codeMsg){
   
   
		return new Result<T>(codeMsg);
	}
	
	private Result(T data) {
   
   
		this.data = data;
	}
	
	private Result(int code, String msg) {
   
   
		this.code = code;
		this.msg = msg;
	}
	
	private Result(CodeMsg codeMsg) {
   
   
		if(codeMsg != null) {
   
   
			this.code = codeMsg.getCode();
			this.msg = codeMsg.getMsg();
		}
	}
	
	
	public int getCode() {
   
   
		return code;
	}
	public void setCode(int code) {
   
   
		this.code = code;
	}
	public String getMsg() {
   
   
		return msg;
	}
	public void setMsg(String msg) {
   
   
		this.msg = msg;
	}
	public T getData() {
   
   
		return data;
	}
	public void setData(T data) {
   
   
		this.data = data;
	}
}

CodeMsg
这是对系统常量进行封装,做到统一管理。防止个人硬编码直接返回对应状态码,重构火葬场呀。这样做好维护,好管理。

package com.cpc.miaosha_02.result;

import com.alibaba.fastjson.JSON;

/**
 * 对应返回转态做统一管理,以利于后期维护
 */
public class CodeMsg {
   
   
	
	private int code;
	private String msg;
	
	//通用的错误码
	public static CodeMsg SUCCESS = new CodeMsg(0, "success");
	public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "服务端异常");
	public static CodeMsg BIND_ERROR = new CodeMsg(500101, "参数校验异常:%s");
	//登录模块 5002XX
	public static CodeMsg SESSION_ERROR = new CodeMsg(500210, "Session不存在或者已经失效");
	public static CodeMsg PASSWORD_EMPTY = new CodeMsg(500211, "登录密码不能为空");
	public static CodeMsg MOBILE_EMPTY = new CodeMsg(500212, "手机号不能为空");
	public static CodeMsg MOBILE_ERROR = new CodeMsg(500213, "手机号格式错误");
	public static CodeMsg MOBILE_NOT_EXIST = new CodeMsg(500214, "手机号不存在");
	public static CodeMsg PASSWORD_ERROR = new CodeMsg(500215, "密码错误");
	
	
	//商品模块 5003XX
	
	
	//订单模块 5004XX
	public static CodeMsg ORDER_NOT_EXIST = new CodeMsg(500400, "订单不存在");
	
	//秒杀模块 5005XX
	public static CodeMsg MIAO_SHA_OVER = new CodeMsg(500500, "商品已经秒杀完毕");
	public static CodeMsg REPEATE_MIAOSHA = new CodeMsg(500501, "不能重复秒杀");
	
	//将构造方法私有化,防止硬编码
	private CodeMsg( ) {
   
   
	}
			
	private CodeMsg( int code,String msg ) {
   
   
		this.code = code;
		this.msg = msg;
	}
	
	public int getCode() {
   
   
		return code;
	}
	public void setCode(int code) {
   
   
		this.code = code;
	}
	public String getMsg() {
   
   
		return msg;
	}
	public void setMsg(String msg) {
   
   
		this.msg = msg;
	}

	/**
	 * 对msg中的占位符做处理
	 * @param args
	 * @return
	 */
	public CodeMsg fillArgs(Object... args) {
   
   
		int code = this.code;
		String message = String.format(this.msg, args);
		return new CodeMsg(code, message);
	}

	/**
	 * 使用例子
	 * @param args
	 */
	public static void main(String[] args) {
   
   
		Result result = Result.error(CodeMsg.SESSION_ERROR);
		System.out.println(JSON.toJSONString(result));
	}
	@Override
	public String toString() {
   
   
		return "CodeMsg [code=" + code + ", msg=" + msg + "]";
	}
	
	
}

简单的使用一下我们封装好的类:
成功结果集我们可以这样返回

/**
 * 示例:使用封装好的代码来返回结果
 * @return
 */
@RequestMapping(
sa-pso多目标优化代码,可以基于Simulated Annealing(模拟退火)和Particle Swarm Optimization(粒子群优化)两种算法相结合的思想进行编。 首先,我们需要定义问题的目标函数。多目标优化问题是指在有多个决策变量的情况下,存在多个决策变量组合可以实现多个不同的优化目标。在代码中,我们需要定义这些目标函数,并考虑其权重或约束条件。 然后,我们可以使用Simulated Annealing算法来进行全局搜索和探索。Simulated Annealing通过模拟金属退火的过程,按照一定的温度下降规则,在解空间中进行随机搜索,以找到全局最优解。算法的核心是接受次优解的概率,该概率随着温度的下降而逐渐降低,从而避免陷入局部最优解。 接着,我们可以使用Particle Swarm Optimization算法来进行局部搜索和优化。Particle Swarm Optimization通过模拟鸟群觅食的过程,将问题的解空间视为粒子的位置,通过粒子之间的信息交流和迭代,逐渐靠近最优解。算法的核心是更新粒子的速度和位置,使其在解空间中搜索最优解。 在代码中,我们可以使用两个循环:外部循环用于控制Simulated Annealing算法的退火过程,内部循环用于控制Particle Swarm Optimization算法的迭代过程。通过不断更新解的位置和速度,并根据目标函数进行评估和比较,最终得到多目标优化的最优解。 对于粒子群算法,我们要定义粒子的初始位置和速度,并通过更新公式来迭代更新粒子的速度和位置。对于模拟退火算法,我们要定义初始温度和温度下降的规则,并通过接受次优解的概率来接受或拒绝新解。 最后,我们可以根据代码的输出结果和特定问题的要求,进行结果的分析和优化。可以根据目标函数的值或约束条件的满足程度,对算法进行调整和改进,以得到更好的优化结果。 总之,sa-pso多目标优化代码基于Simulated Annealing和Particle Swarm Optimization算法,通过全局搜索和局部搜索的方式,在解空间中逐步靠近最优解。通过定义目标函数、更新粒子和温度,进行迭代和优化,最终得到多目标优化的最优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值