什么是责任链设计模式?
- 在程序运行阶段,动态的组合程序的调用顺序。
举例(过滤器):
在程序编译阶段不会确定调用顺序。因为Filter的调用顺序是配置到web.xml文件中的,只要修改web.xml配置文件中filter-mapping的顺序就可以调整Filter的执行顺序。显然Filter的执行顺序是在程序运行阶段动态组合的。那么这种设计模式被称为责任链设计模式。
当我们需要调整代码的执行顺序时,必须修改代码,使用责任链设计模式不需修改代码就能调整代码的执行顺序
public class A{
public void m1(){
System.out.println("m1 begin");
m1();
System.out.println("m1 over");
}
public void m2(){
System.out.println("m2 begin");
m2();
System.out.println("m2 over");
}
public void m3(){
System.out.println("m3 begin");
m3();
System.out.println("m3 over");
}
public void m4(){
System.out.println("m4 begin");
m4();
System.out.println("m4 over");
}
}