我在项目内使用了设计模式后,同事直呼看不懂

本文讲述了在项目中遇到的多接口业务逻辑判断问题,原有的代码存在冗余和不易扩展的问题。作者通过分析业务需求,决定采用责任链模式进行优化,模仿Mybatis的plugins模式。文中解释了责任链模式的概念,并展示了如何利用JDK动态代理实现拦截器和代理工厂,以创建层层包装的拦截器链。最后,作者提到这种优化方法可以减少重复的检查代码,并提供了进一步扩展的可能性。
摘要由CSDN通过智能技术生成

 一切抛开业务的设计,都是扯淡!在项目中有个我们会对多个接口进行多业务逻辑判断,项目开始工期紧,所以先以实现功能为主,最近打算优化一番,一开始的代码是这样的

public void checkProjectAdd(List<OrderDetail> list) {
        if (!CollectionUtils.isEmpty(list)) {
            orderService.check(list);
            stockService.check(list);
            orderAddress.check(list);
            userScoreService.check(list);
            activityService.check(list);
            this.check();
        }
        excute();
    }

虽然对检查类的方法做了简单的封装,但在好多地方可能会存在重复的判断,比如订单提交,加入购物车等等,冗余代码随处可见,且不易扩展。在此情形下,废话不多说,准备开干,先来分析分析业务,因为我们的各个检查接口的处理原则是要保证顺序性的,而在检查的过程中可能根据商品提交参数而实质去动态改变list参数中的内容,比如一个库存当两个卖,用户会员等级结合实际商品数判断能否享受折扣等等,所以每一级的检查或手动处理值都是要求检查类代码执行顺序,思前想后,想起曾在阅读mybatis源码时觉得其设计的plugins模式很适合此类场景,于是决定使用《责任链模式》来进行这一次代码的优化。

  首先简单介绍一下什么是责任链,说到链,大家就能想到链表,这里我们只说

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值