public interface Filter {
void doFilter(String data,FilterChain chain);
}
public interface BaseFilter extends Filter {
void init();
}
public class FilterChain implements BaseFilter {
private Iterator<BaseFilter> baseFilterIterator;
public FilterChain(BaseFilter... filters) {
this.baseFilterIterator = Arrays.asList(filters).iterator();
init();
}
@Override
public void init() {
baseFilterIterator.forEachRemaining(BaseFilter::init);
}
@Override
public void doFilter(String data,FilterChain chain) {
if (baseFilterIterator.hasNext()) {
baseFilterIterator.next().doFilter(data,chain);
}
}
}
public class FilterImpl implements BaseFilter{
@Override
public void init() {
System.out.println("filter initialize");
}
@Override
public void doFilter(String data, FilterChain chain) {
System.out.println("filter work...");
chain.doFilter(data, chain);
}
}
Filter Code Pattern
最新推荐文章于 2024-06-12 23:40:32 发布