技术栈

2019-03-01——设计模式 责任链模式

2019-03-03  本文已影响0人  烟雨乱平生

特点

职责链模式描述的请求如何沿着对象所组成的链来传递的。它将对象组成一条链,发送者将请求发给链的第一个接收者,并且沿着这条链传递,直到有一个对象来处理它或者直到最后也没有对象处理而留在链末尾端。

主要角色

实现

public abstract class Handler {
    private Handler next;
    public abstract void handler(String name);

    public Handler getNext() {
        return next;
    }

    public void setNext(Handler next) {
        this.next = next;
    }
}


public class HandlerA extends Handler {
    @Override
    public void handler(String name) {
        if("A".equalsIgnoreCase(name)){
            System.out.println(this.getClass().getName());
        }else if (getNext()!=null){
            getNext().handler(name);
        }else{
            System.out.println("no handler deal "+name);
        }
    }
}


public class HandlerB extends Handler {
    @Override
    public void handler(String name) {
        if("B".equalsIgnoreCase(name)){
            System.out.println(this.getClass().getName());
        }else if (getNext()!=null){
            getNext().handler(name);
        }else{
            System.out.println("no handler deal "+name);
        }
    }
}


public class Client {
    public static void main(String[] args) {
        Handler handlerA = new HandlerA();
        Handler handlerB = new HandlerB();
        handlerA.setNext(handlerB);
        handlerA.handler("B");
    }
}
上一篇下一篇

猜你喜欢

热点阅读