Java设计模式菜鸟系列迭代器模式建模与实现

Posted wgwyanfs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java设计模式菜鸟系列迭代器模式建模与实现相关的知识,希望对你有一定的参考价值。

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39807741


迭代器模式(Iterator):提供了一种方法顺序訪问一个聚合对象中的各个元素,而又不暴露其内部的表示。

一、uml建模:

技术分享


二、代码实现

/**
 * 演示样例:迭代器模式
 * 
 */

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;
	}

}

/**
 * client測试类
 * 
 * @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设计模式菜鸟系列迭代器模式建模与实现的主要内容,如果未能解决你的问题,请参考以下文章

Java设计模式菜鸟系列(十五)建造者模式建模与实现

Java 设计模式之迭代器学习与掌握

Java 设计模式之迭代器学习与掌握

Java 设计模式之迭代器学习与掌握

每天一个java设计模式(二十二) - 迭代器模式

JAVA设计模式之迭代器设计模式