调停者:找同一个组件进行处理。类似于消息中间件。
门面:客户直接找前台,封装底层处理逻辑。
装饰器模式
责任链模式
实现处理如下图所示的效果
核心代码:
过滤器的doFilter方法
public class Filter01 implements Filter {
@Override
public boolean doFilter(Request request,Response response,FilterChain chain) {
System.out.println("request:f1执行");
chain.doFilter(request,response,chain);
System.out.println("response:f1执行");
return true;
}
}
责任链的doFilter方法
import java.util.ArrayList;
import java.util.List;
public class FilterChain implements Filter {
List<Filter> filters = new ArrayList();
Integer index = 0;
FilterChain add(Filter filter){
filters.add(filter);
return this;
}
@Override
public boolean doFilter(Request request,Response response,FilterChain chain) {
//判断是否执行到链尾 执行到链尾即停止执行
if(index==chain.filters.size()) return false;
Filter filter = chain.filters.get(index);
index++;
return filter.doFilter(request,response,chain);
}
}