一个故事看懂责任链模式

小员工要求老板发聚餐费,各个等级的老板能够批准的额度是不一样的,上级批不了给上上级,上上级批不了给上上上级,一直往上直到最终大boss。

public abstract class Handler {
    protected Handler successor;

    public abstract void handleRequest(int money);

    public Handler getSuccessor() {
        return successor;
    }

    public void setSuccessor(Handler successor) {
        this.successor = successor;
    }
}
责任链接口,每个上级还有自己的处理方法和上级boss的信息。

小boss:

public class SmallBoss extends Handler {
    @Override
    public void handleRequest(int money) {
        if (money < 100) {
            System.out.println("小于100块,哥批准了");
        } else {
            System.out.println("艹,这么多钱,交给我领导处理。");
            getSuccessor().handleRequest(money);
        }
    }
}
中boss:
public class MiddleBoss extends Handler {
    @Override
    public void handleRequest(int money) {
        if (money < 500) {
            System.out.println("小于500的,哥处理了");
        } else {
            System.out.println("哥处理不了,给我领导吧");
            getSuccessor().handleRequest(money);
        }
    }
}
大Boss
public class BigBoss extends Handler {
    @Override
    public void handleRequest(int money) {
        if (money < 1000) {
            System.out.println("我处理了,哥批准了");
        } else {
            System.out.println("我处理了,你明天不用来了");
        }
    }
}

测试:
public class Main {
    public static void main(String[] args) {
        Handler handler = new SmallBoss();
        Handler handler1 = new MiddleBoss();
        Handler handler2 = new BigBoss();
        handler.setSuccessor(handler1);
        handler1.setSuccessor(handler2);
        handler.handleRequest(13000);
    }
}

艹,这么多钱,交给我领导处理。
哥处理不了,给我领导吧
我处理了,你明天不用来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值