UML图:
在处理器对象中存在另一个处理器对象,像一个工作流,从头执行至尾部。
处理器接口:
interface Handler {
void handleRequest();
Handler getSuccessor();
void setSuccessor(Handler successor);
}
实现类:
class ConcreteHandler implements Handler {
private Handler successor;
@Override
public void handleRequest() {
if (getSuccessor() != null) {
System.out.println("放过请求");
getSuccessor().handleRequest();
} else {
System.out.println("处理请求");
}
}
@Override
public Handler getSuccessor() {
return successor;
}
@Override
public void setSuccessor(Handler successor) {
this.successor = successor;
}
}
客户端中将一个处理器放入另一个处理器:
Handler handler1 = new ConcreteHandler();
handler1.setSuccessor(new ConcreteHandler());
handler1.handleRequest();