迭代器模式比較簡單,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());