责任链模式是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功位置,责任链模式把多个处理器串成链,然后让请求在链上传递。
责任链模式将请求和处理分开,请求者不知道谁去处理,处理者也不需要知道请求的全貌,可以提高系统灵活性。
package com.learn.shejimoshi.责任链模式;
public class Client {
public static void main(String[] args) {
Handler level1 = new Leader();
Handler level2 = new Boss();
level1.setNextHandler(level2);
level1.process(10);
// 虽然是给level1去处理,但实际上是Boss在处理
level1.process(13);
}
}
abstract class Handler{
protected Handler nextHandler;
public void setNextHandler(Handler nextHandler) {
this.nextHandler = nextHandler;
}
public abstract void process(Integer info);
}
class Leader extends Handler{
@Override
public void process(Integer info) {
if(info>0 && info<11){
System.out.println("Leader处理");
}else{
nextHandler.process(info);
}
}
}
class Boss extends Handler{
@Override
public void process(Integer info) {
System.out.println("Boss处理");
}
}