行为模式之迭代器模式与责任链模式

迭代器模式

迭代器模式比较简单,JAVA里面迭代接口都已经定义好了,咱们要用该模式的时候只须要实现Iterator接口就行了。对于平常编来讲,咱们基本上不须要本身关注,由于JAVA已经给咱们定义了各类容器。java

责任链模式

该模式经常使用于过滤器中,比较典型的是Servelet的filter。
下面带你们撸一撸代码:
Request.java测试

public class Request{

	public String name="x1";
}

IFilter.javathis

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());
相关文章
相关标签/搜索