一、責任鏈模式是一種對象的行爲模式java
二、責任鏈模式的結構tomcat
public abstract class Handler { /** * 持有後繼的責任對象 */ protected Handler successor; /** * 示意處理請求的方法,雖然這個示意方法是沒有傳入參數的 * 但實際是能夠傳入參數的,根據具體須要來選擇是否傳遞參數 */ public abstract void handleRequest(); /** * 取值方法 */ public Handler getSuccessor() { return successor; } /** * 賦值方法,設置後繼的責任對象 */ public void setSuccessor(Handler successor) { this.successor = successor; } }
public class ConcreteHandler extends Handler { /** * 處理方法,調用此方法處理請求 */ @Override public void handleRequest() { /** * 判斷是否有後繼的責任對象 * 若是有,就轉發請求給後繼的責任對象 * 若是沒有,則處理請求 */ if(getSuccessor() != null) { System.out.println("放過請求"); getSuccessor().handleRequest(); }else { System.out.println("處理請求"); } } }
public class Client { public static void main(String[] args) { //組裝責任鏈 Handler handler1 = new ConcreteHandler(); Handler handler2 = new ConcreteHandler(); handler1.setSuccessor(handler2); //提交請求 handler1.handleRequest(); } }
三、純的與不純的責任鏈模式ide
四、責任鏈模式在Tomcat中的應用(詳見tomcat servlet 容器一文)this