文档章节

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

my_juke
 my_juke
发布于 06/11 17:06
字数 311
阅读 20
收藏 0

迭代器模式

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

© 著作权归作者所有

my_juke
粉丝 4
博文 34
码字总数 22261
作品 0
深圳
私信 提问
一句话总结23种设计模式则

1. 前言 断断续续写了一段时间的设计模式,终于把经典的23种设计模式全写完了。下面对这些设计模式总结一下。 2. 设计原则 设计原则的介绍 : 设计模式的六大原则 即使我们之前没有专门看过这...

四月葡萄
2018/01/05
0
0
设计模式--总结

学习设计模式的好处: 学习设计模式最好的方式: 设计模式的本质目的: OO是原则,设计模式是具体方法和工具。 设计模式分类: 创建型模式(五种): 工厂方法模式、抽象工厂模式、单例模式、建造...

有钱有爱
2016/04/09
124
0
PHP的23种设计模式--php_design_patterns

学习理解设计模式,记录PHP关于23种设计模式的简单Demo。 设计模式分为:创建型模式, 结构型模式,行为型模式等23种设计模式。 一、五种创建型模式如下: 工厂方法模式factorymethod 抽象工...

匿名
2016/04/13
1K
1
设计模式及各大原则简介

简介 项目开发中发现问题、解决问题这个过程中会出现很多问题,比如重复出现、某个问题的遗留,这些问题的本质就是设计模式。今天记录设计模式的知识点。 内容 在java以及其他的面向对象设计...

sun5769675
2016/03/08
21
0
JAVA设计模式--行为型模式(1)

本章是关于设计模式的最后一讲,会讲到第三种设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、...

李矮矮
2016/09/27
16
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis + Ehcache 二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕...

xiaolyuh
26分钟前
4
0
Spring源码学习(二)哎呦,按菜谱做菜与AbstractAutowireCapableBeanFactory.createBean流程差不多

记得跟老婆谈恋爱时,有一天心血来潮给老婆做饭,按照菜谱一步一步的做,结果差点把厨房烧了!!! 这事至今老婆还记得。 入口 上一篇说了,AbstractBeanFactory.getBean的主流程 ,今天来说下...

温安适
28分钟前
37
0
前端UI攻城狮 你们该抛弃jQuery了

你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使...

前端老手
29分钟前
5
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
今天
6
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部