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

迭代器模式

迭代器模式比较简单,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());

转载于:https://my.oschina.net/u/3217171/blog/3060807

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值