分分钟搞定迭代器模式(Iterator)
迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节.简单说,迭代器装进容器,就成为了迭代器模式,这就涉及到4个角色:1.迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。...
迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节.
简单说,迭代器装进容器,就成为了迭代器模式,这就涉及到4个角色:
1. 迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。
2.具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置。
3. 容器角色(Container):容器角色负责提供创建具体迭代器角色的接口。
4.具体容器角色(Concrete Container):具体容器角色实现创建具体迭代器角色的接口——这个具体迭代器角色于该容器的结构相关。
如下图:
public interface IContainer {
Iterator createrIterator();
}
这里只看两个抽象类来理解迭代器模式:
抽象迭代器
public interface Iterator {
String next();
boolean haveNext();
}
抽象容器
public interface IContainer {
Iterator createrIterator();
}
在各自的实现中:抽象迭代器的实现需要容器的成员变量,作为构造参数传入实现类中
抽象容器的实现需要实例化具体迭代器.
这样就能直接通过容器来遍历迭代器
本文来自:http://blog.csdn.net/lilu_leo/article/details/7609496,写的很不错,推荐之
转载于:https://blog.51cto.com/fawor/1368991
更多推荐




所有评论(0)