目的:责任链模式可以让处理器按以下方式处理:如果需要则处理请求,否则将请求传递给下一个处理器,直到发现了能正确处理这个请求的处理器。
实现:
Client(客户端):它的职责是实例化一个处理器的链,然后在第一个对象中调用handleRequest方法。
Handle(处理器):这是一个抽象类,提供给所有实际处理器进行继承。它拥有一个handleRequest方法,用来接收需要处理的请求。
ConcreteHandler(具体处理器):这是一个实现了handleRequest方法的具体类。每一个具体处理器都维持一个引用,指向链中下一个具体处理器。
Handle(处理器)抽象类代码:
abstract public class Handler {
protected Handler successor;
//设置下一个处理器
public void setSuccessor(Handler successor) {
this.successor = successor;
}
//处理请求方法
abstract public void handleRequest(Car car);
}
具体处理器代码:
ConcreteHandler_1代码:
public class ConcreteHandler_1 extends Handler {
public ConcreteHandler_1() {
//维持ConcreteHandler_2的引用
setSuccessor(new ConcreteHandler_2());
}
@Override
public void handleRequest