这两个重载方法,你怎么重构?
先看看下面SmsUtil类里的这两个重载方法
@ConfigurationProperties(prefix = "sms.config") @Setter public class SmsUtil { @Autowired private PlatformConfig platformConfig; private String smsUrl; /** * 发送短信 * * @param phone 手机号 * @param msg 信息内容 * @return 处理的信息 */ public String sendSMS(String phone, String msg) { StringBuilder sbParam = new StringBuilder(); StringBuilder url = new StringBuilder(); if (StringUtils.isBlank(phone)) { return "手机号不能为空!"; } if (StringUtils.isBlank(msg)) { return "发送的信息内容不能为空!"; } if (!msg.contains(platformConfig.getSmsSignature())) { msg = platformConfig.getSmsSignature() + msg; } try { sbParam.append("?account=").append(platformConfig.getSmsAccount()); sbParam.append("&pwd=").append(URLEncoder.encode(platformConfig.getSmsKey(), "UTF-8")).append("&mphone=").append(phone).append("&content=") .append(URLEncoder.encode(msg, "UTF-8")); url.append(smsUrl) .append(sbParam.toString()); Integer result = HttpClientUtils.requestByGetMethod(url.toString()); return result.toString(); } catch (Exception e) { e.printStackTrace(); log.error("发送短信异常", e); } return "信息发送成功!"; } /** * 发送短信 * @param phone 手机号 * @param msg 短信内容 * @param userName 通道名称 * @param passWord 通道密码 * @return */ public String sendSMS(String phone, String msg,String userName,String passWord) { StringBuilder sbParam = new StringBuilder(); StringBuilder url = new StringBuilder(); if (StringUtils.isBlank(phone)) { return "手机号不能为空!"; } if (StringUtils.isBlank(msg)) { return "发送的信息内容不能为空!"; } if (!msg.contains(platformConfig.getSmsSignature())) { msg = platformConfig.getSmsSignature() + msg; } try { sbParam.append("?account=").append(userName); sbParam.append("&pwd=").append(URLEncoder.encode(passWord, "UTF-8")).append("&mphone=").append(phone).append("&content=") .append(URLEncoder.encode(msg, "UTF-8")); url.append(smsUrl) .append(sbParam.toString()); Integer result = HttpClientUtils.requestByGetMethod(url.toString()); return result.toString(); } catch (Exception e) { e.printStackTrace(); log.error("发送短信异常", e); } return "信息发送成功!"; } }
我想你有一个想法跟我一样,重构方案如下↓↓↓↓
修改第一个sendSMS方法的方法体为:
/** * 发送短信 * * @param phone 手机号 * @param msg 信息内容 * @return 处理的信息 */ public String sendSMS(String phone, String msg) { return sendSMS(phone, msg, platformConfig.getSmsAccount(), platformConfig.getSmsKey()); }
当然,还有其他的需要重构调整的地方。例如 passWord,程序员的英语水平,应该是password。
再有,再有什么呢?
当看到一些不好的代码时,会发现我还算优秀;当看到优秀的代码时,也才意识到持续学习的重要!--buguge
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/buguge/p/17361807.html