23中设计模式-责任链模式《请假条去哪儿拉》

本文介绍了责任链模式的概念,它用于在多个对象间传递请求,降低耦合性。文章通过一个请假流程的例子,展示了如何构建责任链,从基层到高层逐级审批,同时也强调了责任链模式需要提供默认处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于许久不用的东西,容易忘记。百度许久,也未能找到自己所要。 从今日起,有些东西就记载下来,不仅方便自己,希望能帮到他人吧!

责任链定义

使多个对象都有机会处理请求,避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这个链传递到该请求,直到有一个对象能处理为止。

责任链模式涉及到的角色

抽象处理者(Handler)角色:定义出一个处理请求的接口。

具体处理者(ConcreteHandler)角色:具体处理者接到请求后,可以选择处理请求,或者将请求传给另一个具体处理者(ConcreteHandler)。

责任链使用最多的地方就是:基层-》组长-》主管-》经理-》董事长-》…, 类似于这种从属关系,他们组成一个责任链,依次向上级发送请求。不过体现不了责任链的灵活性,责任链的结构可以修改,进行越级报告。

上班总是无聊的,外面的时间总是充满诱惑,于是开启了我的请假旅途。
但是请假很麻烦,流程我倒是不用管,直接把请求交给组长。

package com.example.designpattern.ChainOfResponsibilityPattern;

/**
 * 组长
 * <p>
 * 组长只能处理1天的请假请求。
 */

public class CaptainConcreteHandler extends Handler {
    @Override
    public String handlerRequest(int days) {
        if (days <= 1) {
            return "组长批准";
        }
        //处理不了,传递给另一个具体处理者(ConcreteHandler)
        return superHandler.handlerReque
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值