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);