职责链设计模式
职责链设计模式:使多个对象都有机会处理请求,从而避免了请求发送者和接受者之间的耦合关系。将这样的对象连成一条链,并沿着这条链传递请求,直到有一个对象处理这里请求为止。
代码如下:
- 抽象出一个处理请求的接口
package com.wsy.chain;
public interface Handler {
public void doHanler(String request);
}
- 实现处理请求的具体实现类
HandlerA:
package com.wsy.chain;
public class HandlerA implements Handler{
private Handler nextHandler;
@Override
public void doHanler(String request) {
if(request.equals("A")){
System.out.println("A处理结束");
}else{
if(nextHandler == null){
System.out.println("不能处理");
return;
}
nextHandler.doHanler(request);
}
}
public Handler getNextHandler() {
return nextHandler;
}
public void setNextHandler(Handler nextHandler) {
this.nextHandler = nextHandler;
}
}
HandlerB:
package com.wsy.chain;
public class HandlerB implements Handler{
private Handler nextHandler;
@Override
public void doHanler(String request) {
if(request.equals("B")){
System.out.println("B处理结束");
}else{
if(nextHandler == null){
System.out.println("不能处理");
return;
}
nextHandler.doHanler(request);
}
}
public Handler getNextHandler() {
return nextHandler;
}
public void setNextHandler(Handler nextHandler) {
this.nextHandler = nextHandler;
}
}
客户端代码:
package com.wsy.chain;
public class Client {
public static void main(String[] args) {
HandlerA handlerA = new HandlerA();
HandlerB handlerB = new HandlerB();
handlerA.setNextHandler(handlerB);
handlerA.doHanler("C");
}
}
这就是职责链设计模式一个最简单的实现