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);
本文介绍了一种常用的设计模式——责任链模式。通过定义一个抽象处理者类,该类包含一个处理请求的方法及设置后续处理者的方法。具体处理者类继承自抽象处理者,并实现了具体的处理逻辑。最终,在主方法中通过设置各个处理者的后继节点来形成一个处理请求的链表。
347

被折叠的 条评论
为什么被折叠?



