JAVA设计模式之责任链模式

一、什么是责任链模式?

  责任链模式是指多个对象,能够依次的对传递过来的信息进行处理,并传递给下一个对象,直到处理完毕。

二、责任链有哪些角色?

  1. 抽象处理者角色:定义一个处理请求的接口,如果需要,接口可以定义出一个方法来设定和返回下一个处理者
  2. 具体处理者角色:具体处理者接收到请求后,可以选择将请求处理掉,或者将请求传递给下一个处理者

三、代码详解:

  抽象类:  

public abstract class Handler {
    /**
     * 下一个处理者
     */
    private Handler target;

    public Handler getTarget() {
        return target;
    }

    public void setTarget(Handler target) {
        this.target = target;
    }
    
    public abstract void process();

}

  具体实现者A:

public class Handler_A extends Handler {

    @Override
    public void process() {
        Handler handler = getTarget();
        if (handler == null) {
            System.out.println("A处理后, 直接返回结果");
            return;
        } else {
            System.out.println("A处理后,返回个下一个handler继续处理");
            handler.process();
        }
    }

}

  具体实现者B:

public class Handler_B extends Handler{

    @Override
    public void process() {
        Handler handler = getTarget();
        if (handler == null) {
            System.out.println("B处理后, 直接返回结果");
            return;
        } else {
            System.out.println("B处理后,返回个下一个handler继续处理");
            handler.process();
        }
    }

}

  客户端:

public class Client {

    public static void main(String[] args) {
        
        Handler handlerA = new Handler_A();
        Handler handlerB = new Handler_B();
        handlerA.setTarget(handlerB);
        
        handlerA.process();
        
    }
    
}

结果打印: 

A处理后,返回个下一个handler继续处理
B处理后, 直接返回结果

  

原文地址:https://www.cnblogs.com/lfdingye/p/7789061.html