public abstract class Handler {
protected Handler successor;
protected String name;
public String getName() {
return name;
}
//处理请求,由子类完成
public abstract void handleRequest(String request);
//设置下一个处理请求的人
public void setNextHandler(Handler successor) {
this.successor = successor;
}
}
事实上,跟数据结构里的链表差不多。
然后每个继承Handle的类分别实现handleRequest方法。
public class HandleA extends Handle {
public void handRequest(Request req){
if(req.condition1){
doSomething();
}else{
successor.handleRequest();
}
}
}
最后在main方法中对每个类的对象设置后继结点即可。Handle h1 = new HandleA();
Handle h2 = new HandleB();
Handle h3 = new HandleC();
h1.setNextHandler(h2);
h2.setNextHandler(h3);
String req = "XXXXXXX";
h1.handleRequest(request);