设计模式——责任链模式(图)
·
责任链模式总结如下(可点击放大):

UML结构图如下:

示例:
public class ChainTest{
public static void main(String[] args) {
Handler handler1 = new HandlerImpl1();
Handler handler2 = new HandlerImpl2();
handler1.setNext(handler2);
handler1.handleRequest("1");
}
}
public abstract class Handler {
private Handler next;
public Handler getNext() {
return next;
}
public void setNext(Handler next) {
this.next = next;
}
//处理请求的方法
public abstract void handleRequest(String request);
}
public class HandlerImpl1 extends Handler {
@Override
public void handleRequest(String request) {
if ("1".equals(request)) {
System.out.println("handler 1 负责处理该请求");
}else {
if (getNext() != null) { //交给下一级处理请求
getNext().handleRequest(request);
} else {
System.out.println("无法处理该请求");
}
}
}
}
public class HandlerImpl2 extends Handler {
@Override
public void handleRequest(String request) {
if ("2".equals(request)) {
System.out.println("handler 2 处理该请求");
}else {
if (getNext() != null) {
getNext().handleRequest(request);
}else {
System.out.println("无法处理该请求");
}
}
}
}
更多推荐
所有评论(0)