Java设计模式之责任链模式(Chain of Responsibility模式)介绍
ChainofResponsibility定义:ChainofResponsibility(CoR)是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request。也就是说,来了一个请求,A类先处理,如果没有处理,就传递到B类处理,如果没有处理,就传递到C类处理,就这样象一个链条(chain)一样传递下去。
如何使用责任链模式
虽然这一段是如何使用CoR,但是也是演示什么是CoR。
有一个Handler接口:
publicinterfaceHandler{ publicvoidhandleRequest(); }
这是一个处理request的事例,如果有多种request,比如请求帮助请求打印或请求格式化:
◆最先想到的解决方案是:在接口中增加多个请求:
publicinterfaceHandler{ publicvoidhandleHelp(); publicvoidhandlePrint(); publicvoidhandleFormat(); }
具体是一段实现接口Handler代码:
publicclassConcreteHandlerimplementsHandler{ privateHandlersuccessor; publicConcreteHandler(Handlersuccessor){ this.successor=successor; }
publicvoidhandleHelp(){ //具体处理请求Help的代码 ... }
publicvoidhandlePrint(){ //如果是print转去处理Print successor.handlePrint(); } publicvoidhandleFormat(){ //如果是Format转去处理format successor.handleFormat(); }
}