迭代器模式
迭代器模式比较简单,JAVA里面迭代接口都已经定义好了,我们要用该模式的时候只需要实现Iterator接口就好了。对于日常编来说,我们基本上不需要自己关注,因为JAVA已经给我们定义了各种容器。
责任链模式
该模式常用于过滤器中,比较典型的是Servelet的filter。
下面带大家撸一撸代码:Request.java
public class Request{
public String name="x1";
}
IFilter.java
public interface IFilter{
doFilter(Request req,FilterChain chain);
}
FilterChain.java
责任链
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());