责任链模式
抽象Handler
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);
}
实体handler1
public class ConcreteHandler1 extends Handler {
@Override
public void handleRequest(String request) {
if(request.equals("one")){
System.out.println("handler 1st check the request!");
}else{
if(getNext() != null){`在这里插入代码片`
getNext().handleRequest(request);
}else{
System.out.println("nobody check the request!");
}
}
}
}
实体handler2
public class ConcreteHandler2 extends Handler{
@Override
public void handleRequest(String request) {
if(request.equals("two")){
System.out.println("handler 2nd check the request!");
}else{
if(getNext() != null){
getNext().handleRequest(request);
}else{
System.out.println("nobody check the request!");
}
}
}
}
测试一下
public class test {
public static void main(String[] args) {
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
handler1.setNext(handler2);
handler1.handleRequest("one");
handler1.handleRequest("two");
}
}
输出内容