迭代器模式(Iterator):提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
##一、uml建模:
![](https://box.kancloud.cn/2016-02-19_56c7196ddb28e.jpg)
##二、代码实现
~~~
/**
* 示例:迭代器模式
*
*/
interface Iterator {
/**前移 */
public Object previous();
/**后移 */
public Object next();
/**判断是否有下一个元素 */
public boolean hasNext();
}
interface Collection {
public Iterator iterator();
/**取得集合中的某个元素 */
public Object get(int i);
/**取得集合大小 */
public int size();
}
/**
* 集合
*/
class MyCollection implements Collection {
private String[] strArray = { "aa", "bb", "cc", "dd" };
@Override
public Iterator iterator() {
return new MyIterator(this);
}
@Override
public Object get(int i) {
return strArray[i];
}
@Override
public int size() {
return strArray.length;
}
}
/**
* 迭代器
*/
class MyIterator implements Iterator {
private Collection collection;
private int pos = -1;
public MyIterator(Collection collection) {
this.collection = collection;
}
@Override
public Object previous() {
if (pos > 0) {
pos--;
}
return collection.get(pos);
}
@Override
public Object next() {
if (pos < collection.size() - 1) {
pos++;
}
return collection.get(pos);
}
@Override
public boolean hasNext() {
if (pos < collection.size() - 1) {
return true;
}
return false;
}
}
/**
* 客户端测试类
*
* @author Leo
*/
public class Test {
public static void main(String[] args) {
/**
* 实例化容器
*/
Collection collection = new MyCollection();
/**
* 创建迭代器
*/
Iterator iterator = collection.iterator();
/**
* 遍历集合中的元素
*/
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
~~~
##三、应用场景
遍历、访问集合中的某个元素等
##四、总结
迭代器模式就是顺序访问集合中的对象,这句话包含两层意思:一是需要遍历的对象,即集合对象,二是迭代器对象,用于对集合对象进行遍历访问。
- 前言
- (一)策略模式建模与实现
- (二)观察者模式建模与实现
- (三)装饰者模式建模与实现
- (四)工厂方法模式建模与实现
- (五)抽象工厂模式建模与实现
- (六)单例模式建模与实现
- (七)命令模式建模与实现
- (八)适配器模式建模与实现
- (九)外观模式建模与实现
- (十)模板方法模式建模与实现
- (十一)迭代器模式建模与实现
- (十二)组合模式建模与实现
- (十三)状态模式建模与实现
- (十四)代理模式建模与实现
- (十五)建造者模式建模与实现
- (十六)原型模式建模与实现
- (十七)桥接模式建模与实现
- (十八)责任链模式建模与实现
- (十九)备忘录模式建模与实现
- (二十)解释器模式建模与实现
- (二十一)享元模式建模与实现
- (二十二)中介者模式建模与实现
- (二十三)访问者模式建模与实现
- Java设计模式博客全目录