当前位置: 首页 > news >正文

网站建设语言环境西宁手机网站建设

网站建设语言环境,西宁手机网站建设,流量与网站,关键词推广计划利用模板模式和责任链模式实现数据校验 一、业务背景二、模板模式和责任链模式代码实现1、数据校验抽象处理器ValidateHandler2、数据校验责任链工具类ValidateChainUtil3、网元调整数据校验抽象类AbstractNodeCheckHandler4、依次定义3个责任链handler#xff0c;通过Order注… 利用模板模式和责任链模式实现数据校验 一、业务背景二、模板模式和责任链模式代码实现1、数据校验抽象处理器ValidateHandler2、数据校验责任链工具类ValidateChainUtil3、网元调整数据校验抽象类AbstractNodeCheckHandler4、依次定义3个责任链handler通过Order注解控制执行顺序 三、测试验证四、项目结构及源码 一、业务背景 对项目进行微重构的需求任务中发现有个旧业务代码一个Service的离线校验网元方法中竟然有将近12个逻辑校验代码非常臃肿可维护性大打折扣。因此需要对这个方法进行重构这里简单记录下涉及的重构方法算是抛砖引玉。 二、模板模式和责任链模式代码实现 1、数据校验抽象处理器ValidateHandler /*** 数据校验抽象处理器** author huahua* DATE 2024/8/9**/ public abstract class ValidateHandlerT {private ValidateHandlerT next;public void setNext(ValidateHandlerT next) {this.next next;}public abstract void doValidate(T validateData);public void next(T validateData) {if (next null) {return;}next.doValidate(validateData);} }2、数据校验责任链工具类ValidateChainUtil /*** 数据校验责任链工具类** author huahua* DATE 2024/8/9**/ public class ValidateChainUtil {public static T void doValidateChain(ListValidateHandlerT chainNodeList, T validateData) {if (CollectionUtils.isEmpty(chainNodeList)) {return;}// 初始化调用链所有节点for (int i 0; i chainNodeList.size()-1; i) {chainNodeList.get(i).setNext(chainNodeList.get(i 1));}// 取第一个节点进行校验chainNodeList.get(0).doValidate(validateData);} }3、网元调整数据校验抽象类AbstractNodeCheckHandler /*** 网元调整数据校验抽象类** author huahua* DATE 2024/8/9**/ Component public abstract class AbstractNodeCheckHandler extends ValidateHandlerNode {/*** 基础校验参数是否为空** param node*/public void checkParam(Node node) {if (node null) {throw new RuntimeException(node is empty);}} }4、依次定义3个责任链handler通过Order注解控制执行顺序 NodeCheckInitHandler /*** 网元校验信息初始化处理器** author huahua* DATE 2024/8/9**/ Component Order(100) public class NodeCheckInitHandler extends AbstractNodeCheckHandler {Overridepublic void doValidate(Node node) {System.out.println(执行校验node是否在数据库中业务逻辑......);// 初始化校验结束进入下一个节点next(node);} }NodeCheckPermissionHandler /*** 网元字段权限校验处理器** author huahua* DATE 2024/8/9**/ Component Order(200) public class NodeCheckPermissionHandler extends AbstractNodeCheckHandler {Overridepublic void doValidate(Node node) {System.out.println(执行校验网元字段权限业务逻辑.......);// 网元字段权限校验通过执行下一逻辑next(node);} }NodeCheckPoolHandler /*** 网元资源池校验处理类** author huahua* DATE 2024/8/9**/ Component Order(300) public class NodeCheckPoolHandler extends AbstractNodeCheckHandler {Overridepublic void doValidate(Node node) {System.out.println(执行网元资源池校验业务逻辑.......);// 网元资源池校验通过执行下一逻辑next(node);} }三、测试验证 通过访问接口可以看到控制台能够按照顺序正确执行数据校验逻辑利用模板模式和责任链模式实现数据校验正确结果得到验证 四、项目结构及源码 源码下载地址如下欢迎Star demo-springboot-mybatisplus
http://www.hkea.cn/news/14342581/

相关文章:

  • 如何在电商平台做好企业网站推广网络系统软件应用与维护
  • 服装公司网站规划建设欧米茄表官网
  • 专业做高校网站群管理系统广东省网站设计与开发
  • 山东网站定制设计公司网站建设贰金手指下拉贰拾
  • 长春工程建设信息网站免费咨询医生平台
  • 成品网站制作公司深圳公司注册资金实缴要求
  • 江苏河海建设有限公司官方网站能帮忙做网站建设
  • 2017年网站设计趋势交易平台网站建设项目需求
  • wordpress 微博登录网站建设优化服务咨询
  • 做网站推广的工作内容网站seo运营
  • 做网站资源存储wordpress 开启手机版
  • 安徽电子学会网站建设国家企业公示信息官网
  • 有范app的网络营销方式沈阳网站关键词优化排名
  • dede网站logo怎么改洛阳seo网站
  • 个人网站建设课程介绍wordpress环境部署
  • 做写字楼的网站有哪些资料大连高新园区
  • 网站 营销教育建设网站
  • 西宁建设公司网站魔客吧是什麼程序做的网站
  • 网站建设企业站有哪些要求哪里有做旅游包车的网站
  • 大庆网站设计费用平面设计软件大全免费
  • 长治县网站建设网页设计作品田田田田田田田田田田田田田田
  • 优秀网站建设最新报价wordpress反弹攻击
  • 网站开发如何给用户发邮件wordpress发邮件功能
  • 佛山微信网站开发没网站怎么做cpa
  • 百度站长快速收录网站背景图片优化
  • 微商城网站制作电子商务网站建设与维护概述
  • sharepoint网站制作泉州关键词搜索排名
  • asp学习网站免费网络电话软件哪个好用
  • 河北区网站建设拼多多商品关键词搜索排名
  • 网站建设公司华网天下公司上海网页制作与网站设