迭代器模式比较简单,JAVA里面迭代接口都已经定义好了,咱们要用该模式的时候只须要实现Iterator接口就行了。对于平常编来讲,咱们基本上不须要本身关注,由于JAVA已经给咱们定义了各类容器。java
该模式经常使用于过滤器中,比较典型的是Servelet的filter。
下面带你们撸一撸代码:
Request.java
测试
public class Request{ public String name="x1"; }
IFilter.java
this
public interface IFilter{ doFilter(Request req,FilterChain chain); }
FilterChain.java
责任链code
public class FilterChain{ List<IFilter> list = new ArrayList(); private int index=-1; public void addFilter(IFilter filter){ list.add(filter); } public void doFilter(Request req){ if((index++) == list.size()){ return; } else { list.get(index).dofilter(req,this); } } }
测试代码接口
FilterChain fc = new FilterChain(); fc.add((s,t)->{s.name="x2";t.doFilter(s)}); fc.add((s,t)->{s.name="x3";t.doFilter(s)}); fc.add((s,t)->{if("x3".equals(s.name){return;} else {t.dofilter(s)})}); fc.dofilter(new Request());