Chain of responsibility

When there are multiple processors to handle the request when it falls on different range, and if when current processor is not able to handle it will pass to next processor, in this case, we can apply chain of responsibility pattern to decouple requestor caller and request processor.

Processor we can give an abstract class to define, polymeric another processor, if current processor can't handle the request, will pass to polymerized processor to handle it, in abstract parrent class, we provide set method to link current processor and next processor, also we provide handle request abstract method,

/**
 * @Author Carter Deng
 * @Date 2021/11/20
 */
public abstract class Processor {

    Processor processor;
    String name;

    public Processor(String name) {
        this.name = name;
    }

    public void setProcessor(Processor processor) {
        this.processor = processor;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void process(Request request);
}

Concrete processor will provide implementation details,

/**
 * @Author Carter Deng
 * @Date 2021/11/20
 */
public class ProcessorLevel1 extends Processor {

    public ProcessorLevel1(String name) {
        super(name);
    }

    @Override
    public void process(Request request) {
        if (request.levelId <= 1) {
            System.out.println(name + " is handling " + request.requestContent);
        } else {
            processor.process(request);
        }
    }
}

When we process the request, we need to use set method to link the processors as a chain, in this case we can pass the request to any processor and in the end it can automatically find the according processor to handle the request.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值