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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值