责任链模式

描述

顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。

在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

类图
代码演示
java 复制代码
public abstract class Handler {

    private Handler next;

    public Handler getNext() {
        return next;
    }

    public void setNext(Handler next) {
        this.next = next;
    }

    //处理请求
    public abstract void handle(String request);
}
java 复制代码
public class OneHandler extends Handler {

    @Override
    public void handle(String request) {
        System.out.println("one");
    }
}
java 复制代码
public class TwoHandler extends Handler {
    @Override
    public void handle(String request) {
        System.out.println("tow");
    }
}
java 复制代码
public static void main(String[] args) {
    OneHandler oneHandler = new OneHandler();
    TwoHandler twoHandler = new TwoHandler();
    oneHandler.setNext(twoHandler);
    oneHandler.handle("haha");
}
其他参考
开源框架中的责任链模式实践
https://mp.weixin.qq.com/s/IvPEvf1Jn3Xejh8TbH0Inw
相关推荐
牵牛老人2 天前
C++设计模式-责任链模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
c++·设计模式·责任链模式
C4程序员6 天前
项目设计模式:责任链模式
设计模式·责任链模式
Hanson Huang8 天前
23种设计模式-责任链(Chain of Responsibility)设计模式
java·设计模式·责任链模式·行为型设计模式
java技术小馆22 天前
责任链模式如何减少模块之间的耦合
java·数据库·设计模式·责任链模式
_躬行_22 天前
策略模式和责任链模式的区别
责任链模式·策略模式
worxfr23 天前
【最佳实践】Go 责任链模式实现参数校验
服务器·golang·责任链模式
香菇滑稽之谈23 天前
责任链模式的C++实现示例
开发语言·c++·设计模式·责任链模式
赤水无泪1 个月前
行为模式---责任链模式
责任链模式
工一木子1 个月前
【HeadFirst系列之HeadFirst设计模式】第17天之深入责任链模式:应对复杂请求处理的设计思路
java·设计模式·责任链模式
攻城狮7号1 个月前
【第21节】C++设计模式(行为模式)-Chain of Responsibility(责任链)模式
c++·设计模式·责任链模式