责任链模式

作者: 剑道_7ffc | 来源:发表于2020-04-20 13:54 被阅读0次

一句话总结

请求链式处理

内容

本质是解耦请求和处理,请求处理者只处理自己感兴趣的请求,若不感兴趣则直接转发给下一个结点。

场景

审批流程;过五关,斩六将; 数据校验;

类图

image.png

代码示例

public abstract class Handler {
    protected Handler nextHandler;
    public void setNextHanlder(Handler successor) {
        this.nextHandler = successor;
    }
    public abstract void handleRequest(String request);
}
public class ConcreteHandlerA extends Handler {
    public void handleRequest(String request) {
        if ("requestA".equals(request)) {
            System.out.println(this.getClass().getSimpleName() + "deal with request: " + request);
            return;
        }
        if (this.nextHandler != null) {
            this.nextHandler.handleRequest(request);
        }
    }
}
public class ConcreteHandlerB extends Handler {
    public void handleRequest(String request) {
        if ("requestB".equals(request)) {
            System.out.println(this.getClass().getSimpleName() + "deal with request: " + request);
            return;
        }
        if (this.nextHandler != null) {
            this.nextHandler.handleRequest(request);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        Handler handlerA = new ConcreteHandlerA();
        Handler handlerB = new ConcreteHandlerB();
        handlerA.setNextHanlder(handlerB);
        handlerA.handleRequest("requestB");
    }
}

运行结果


image.png

相关文章

网友评论

    本文标题:责任链模式

    本文链接:https://www.haomeiwen.com/subject/wsorihtx.html