責任鏈模式

概述

責任鏈模式面向對象程式設計里是一種軟件設計模式,它包含了一些命令對象和一系列的處理對象。每一個處理對象決定它能處理哪些命令對象,它也知道如何將它不能處理的命令對象傳遞給該鏈中的下一個處理對象。該模式還描述了往該處理鏈的末尾添加新的處理對象的方法。

責任鏈模式的實現

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

責任鏈模式比較簡單,以上就足夠了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容