责任链模式

顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

例子:请假,3天以内,开发经理批准就可以了,超过3天就要找部门经理。。。

image.png

image.png


class ChainRespPattern {
    public static void main(String[] args) {
        Handler level1 = new Leader();
        Handler level2 = new Boss();
        level1.setNextHandler(level2);

        level1.process(10);
        level1.process(11);
    }
}

abstract class Handler {
    protected Handler nextHandler;

    public void setNextHandler(Handler nextHandler) {
        this.nextHandler = nextHandler;
    }

    public abstract void process(Integer info);
}

class Leader extends Handler {

    @Override
    public void process(Integer info) {
        if (info > 0 && info < 11) {
            System.out.println("Leader 处理!");
        } else {
            nextHandler.process(info);
        }
    }
}

class Boss extends Handler {

    @Override
    public void process(Integer info) {
        System.out.println("Boss 处理!");
    }
}

复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享