责任链模式

2017-07-10  本文已影响0人  zhangxiao

概述

责任链模式面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。该模式还描述了往该处理链的末尾添加新的处理对象的方法。

责任链模式的实现

1.定义一个抽象处理者

public abstract class AbsHandler {
    private AbsHandler mNextHandler;// 下一个处理节点

    /**
     * 处理请求
     * 
     * @param request
     *            请求
     */
    public abstract void handle(String request);

    public AbsHandler getmNextHandler() {
        return mNextHandler;
    }

    public void setmNextHandler(AbsHandler mNextHandler) {
        this.mNextHandler = mNextHandler;
    }

}

2.定义处理者

public class Handler1 extends AbsHandler {

    @Override
    public void handle(String request) {
        if ("交给handler1处理".equals(request)) {
            System.out.println("handler1已处理请求");
        } else {
            getmNextHandler().handle(request);
            System.out.println("handler1已抛出请求");
        }
    }

}

public class Handler2 extends AbsHandler{

    @Override
    public void handle(String request) {
        if ("交给handler2处理".equals(request)) {
            System.out.println("handler2已处理请求");
        }else {
            getmNextHandler().handle(request);
            System.out.println("handler2已抛出请求");
        }
    }
    
}

3.定义一个客户类

public class Client {
    public static void main(String[] args) {
        Handler1 handler1=new Handler1();
        Handler2 handler2=new Handler2();
        handler1.setmNextHandler(handler2);
        handler1.handle("交给handler2处理");
    }
}

4.打印结果


image.png

责任链模式比较简单,以上就足够了。

上一篇下一篇

猜你喜欢

热点阅读