【设计模式】- 责任链篇

简介

  • 责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求组的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

  • 代码:

//定义一个base处理者
public abstract class Handler {
    protected Handler handler;

    public void setHandler(Handler handler) {
        this.handler = handler;
    }

    public abstract void handleRequest();
}

//定义处理者1
public class FirstHandler extends Handler {
    @Override
    public void handleRequest() {
        if (true) {
            doSomething();
        } else if (Objects.nonNull(handler)) {
            handler.handleRequest();
        }
    }
}

//定义处理者2
public class SecondHandler extends Handler {
    @Override
    public void handleRequest() {
        if (true) {
            doSomething();
        } else if (Objects.nonNull(handler)) {
            handler.handleRequest();
        }
    }
}

//定义处理者3
public class ThirdHandler extends Handler {
    @Override
    public void handleRequest() {
        if (true) {
            doSomething();
        } else if (Objects.nonNull(handler)) {
            handler.handleRequest();
        }
    }
}

//入口处理方法
public void method(){
    //定义责任链条
    Handler firstHandler = new FirstHandler();
    Handler secondHandler = new SecondHandler();
    Handler thirdHandler = new ThirdHandler();
    firstHandler.setHandler(secondHandler);
    secondHandler.setHandler(thirdHandler);
    
    //传递任务
    firstHandler.handleRequest();
}
  • 通过上述代码,可以看出,定义了责任链条之后,那么就会给满足条件的handler处理请求。
posted @ 2020-07-30 10:23  双木l之林  阅读(123)  评论(0编辑  收藏  举报