JAVA设计模式之责任链模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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处理后, 直接返回结果

 

  

以上是关于JAVA设计模式之责任链模式的主要内容,如果未能解决你的问题,请参考以下文章

Java责任链模式之总有你想不到的知识

JAVA设计模式之责任链模式

Java设计模式之八 ----- 责任链模式和命令模式

Java 设计模式之责任链学习与掌握

Java 设计模式之责任链学习与掌握

Java 设计模式之责任链学习与掌握