什么是责任链设计模式?
在程序运行阶段,动态的组合程序的调用顺序。
举例(过滤器):
在程序编译阶段不会确定调用顺序。因为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"); } }