java之责任链模式

一、简介

责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象有机会处理一个请求。请求沿着处理者链传递,直到某个处理者决定处理此请求。

二、技术实现

2.1 Handler
java 复制代码
public interface Handler{
    void handle(Request req, Response resp, Chain chain);
}
2.2 Chain
java 复制代码
public class Chain{
   
    private List<Handler> handlers;
    
    private int index;

    public Chain(List<Handler> handlers){

         this.handlers = handlers;

    }

   
    public void next(Request req, Response resp){
        
        if (index + 1 < handlers.size()){

            handlers.get(index++).handle(req, resp, this);
         
        }

    }
}
2.3 Handler 实现
java 复制代码
public LogHandler implements Handler{

    @Override
    public void Handle (Request req, Response resp, Chain chain){
        long start = System.currentTimeStamps();
        chain.next(req,resp);
        log.info("request:{},response:{}, duration:{}",req, resp, System.currentTimeStamps() - start);         
    }
}
相关推荐
SL_staff4 分钟前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
NetX行者12 分钟前
四语言 Hello World 背后:编译模型与运行时对比
开发语言
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
Pin_Qing1 小时前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_962885721 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
杨杨杨大侠1 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
SL_staff1 小时前
私有化低代码运维三重雷区:JVS开源栈中的Kafka/ES/RabbitMQ治理实践
java·低代码·全栈
yuniko-n1 小时前
【算法】约瑟夫环问题
java·算法
郝亚军1 小时前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构
譕痕2 小时前
stripe 实例
java·开发语言·stripe·checksession