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

责任链模式-java

1、spring依赖注入模式

@Configuration
public class ChainConfig {

    @Bean
    public ChainSpringFactory chainSpringFactory(List<IHandler<DemoOne,Boolean>> handlerList){
        return new ChainSpringFactory(handlerList);
    }

}

public class DemoOne {
}

public abstract class IHandler<T,R> {
    public IHandler<T,R> nextHandler;

    public void setNextHandler(IHandler<T,R> nextHandler) {
        this.nextHandler = nextHandler;
    }

    public boolean hasNext() {
        return this.nextHandler != null;
    }
    /**
     * 处理责任链逻辑, 执行下个环节
     */
    public R handle(T t){
        if(hasNext()){
            return nextHandler.handle(t);
        }
        return  null;
    };

}
public class ChainSpringFactory <T,R> {
    private IHandler<T,R> first;

    /**
     * 存放系统中责任链具体处理类
     * @param handlerList
     */
    public  ChainSpringFactory(List<IHandler<T,R>> handlerList) {
        Assert.notEmpty(handlerList,"无责任实现bean");

        for (int i = 0; i < handlerList.size()-1; i++) {
            handlerList.get(i).setNextHandler(handlerList.get(i+1));
        }
        first=handlerList.get(0);
    }

    /**
     * 执行具体业务场景中的责任链集合
     */
    public R executeHandle(T productDto) {
        return first.handle(productDto);
    }
}

</

相关文章:

  • tkinter日历程序的设计
  • 【vue】warning:Avoid mutating a prop directly
  • 53.第二阶段x86游戏实战2-c++实现自动打怪2
  • 【动态规划】路径问题
  • 单片机和微控制器知识汇总——《器件手册--单片机、数字信号处理器和可编程逻辑器件》
  • STM32F103_LL库+寄存器学习笔记02 - 开启SysTick(滴答定时器)中断
  • QinQ项展 VLAN 空间
  • 数据结构与算法:Dijkstra算法和分层图最短路
  • 技术赋能与创新实践:基于低代码平台的高性能应用开发
  • YoloV8训练和平精英人物检测模型
  • Vue动态绑定:文本框、单选按钮、下拉列表、多选按钮
  • Java运行时的堆、栈和方法区
  • 参考apollo3 FLASH样例改写实际应用的接口函数(带磨损均衡处理)
  • 导入 Excel 规则批量修改或删除 PDF 文档内容
  • 【网络】手机PUSH消息发送自建IM通道实现方案
  • 【Pandas】pandas Series to_csv
  • C++学习:六个月从基础到就业——C++基础语法回顾:指针与引用基础
  • 5款视觉OCR开源模型
  • WELL健康建筑认证是什么?
  • 2025年渗透测试面试题总结-某 长亭(题目+回答)
  • 建设厅网站如何查询企业信息网/微信营销推广
  • 做一个电商网站多少钱/高质量内容的重要性
  • 邹平县城乡建设局网站/2022近期重大新闻事件10条
  • 本网站只做信息展示/黑帽seo是作弊手法
  • 做网站多少钱赚钱吗/建站是什么意思
  • 消费返利网站做的最长久的/aso应用商店优化原因