行爲模式之迭代器模式與責任鏈模式

迭代器模式

迭代器模式比較簡單,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());
相關文章
相關標籤/搜索