责任链模式(Chain of Responsibility)

有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求

定义接口

public interface Handler {
    public void operator();
}

基本实现类

public abstract class AbstractHandler {
    private Handler handler;

    public Handler getHandler() {
        return handler;
    }

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

实现类

public class MyHandler extends AbstractHandler implements Handler{
    private String name;
      
    public MyHandler(String name) {
        this.name = name;
    }

    @Override
    public void operator() {
        System.out.println(name+" operator");
        if(getHandler()!=null){
            getHandler().operator();
        }
    }
}

测试代码

public static void main(String[] args) {
    MyHandler h1 = new MyHandler("h1");
    MyHandler h2 = new MyHandler("h2");
    MyHandler h3 = new MyHandler("h3");

    h1.setHandler(h2);
    h2.setHandler(h3);

    h1.operator();
}

你可能感兴趣的:(责任链模式(Chain of Responsibility))