路一步步走>> 設計模式十三:Chain of Responsibility-責任鏈
阿新 • • 發佈:2018-12-08
package com.test.DPs.XingWei.ChainOfResponsibility; /** * 行為型:Chain of Responsibility-責任鏈 外觀:作用面為 物件 */ interface Handler{ void operator(); } abstract class AbstractHandler{ private Handler handler; public Handler getHandler(){ return handler; } public void setHandler(Handler handler){ this.handler = handler; } } class myHandler extends AbstractHandler implements Handler{ private String name; public myHandler(String name){ this.name = name; } @Override public void operator(){ System.out.println(name+" deal!"); if(getHandler()!=null){ getHandler().operator(); } } } /** * 用途:使多個物件都有機會處理請求,,從而避免請求的傳送者和接收者之間的耦合關係。 * 將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個物件處理它為止。 * * 理解:有多個物件,每個物件持有對下一個物件的引用(或者物件本身由其它容器包含),這樣就會形成一條鏈 * 請求在這條鏈上傳遞,直到某一物件決定處理該請求。但是發出者並不清楚到底最終那個物件會處理該請求 * * 參考:https://blog.csdn.net/u012810020/article/details/71194853 */ public class ChainOfResponsibility { public static void main(String[] args) { myHandler h1 = new myHandler("h1"); myHandler h2 = new myHandler("h2"); myHandler h3 = new myHandler("h3"); h1.setHandler(h2); h2.setHandler(h3); h1.operator(); } }