Chain of Responsibility定義 Chain of Responsibility(CoR) 是用一系列類(classes)試圖處理一個請求request,這些類之間是一個松散的耦合,唯一共同點是在他們之間傳遞request. 也就是說,來了一個請求,A類先處理,假如沒有處理,就傳遞到B類處理,假如沒有處理,就傳遞到C類處理,就這樣象一個鏈條(chain)一樣傳遞下去。
如何使用? 雖然這一段是如何使用CoR,但是也是演示什么是CoR.
有一個Handler接口:
public interface Handler{ public void handleRequest(); }
解決方案3: 在Handler接口中只使用一個參數化方法: public interface Handler{ public void handleRequest(String request); } 那么Handler實現代碼如下: public class ConcreteHandler implements Handler{ private Handler successor;
public ConcreteHandler(Handler successor){ this.successor=successor; }
public void handleRequest(String request){ if (request.equals("Help")){ //這里是處理Help的具體代碼 }else //傳遞到下一個 successor.handle(request);