您的位置 首页 java

Java,设计模式,行为型,迭代器模式,顺序访问聚合对象元素

迭代器模式( iterator Pattern):

提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。

提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。

迭代器模式的角色:

迭代器( Iterator )、具体迭代器(ConcreteIterator)、聚合(Aggregate)和具体聚合(ConcreteAggregate);

迭代器模式的案例:

实现类图:

实现代码:

 /**
 * 迭代器(Iterator)
 */
public interface Iterator {
	
	Object First();

	Object Next();

	boolean IsDone();

	 Object  CurrentItem();
	
}  
 
import  Java .util.ArrayList;
import java.util.List;

/**
 * 具体迭代器(ConcreteIterator)
 */
public class ConcreteIterator implements Iterator {

	private List<Object> list = new ArrayList<Object>();
	private int curr = 0;

	public ConcreteIterator(List<Object> list) {
		this.list = list;
	}

	public Object First() {
		return list.get(0);
	}

	public Object Next() {
		Object ret = null;
		curr++;
		if (curr < list.size()) {
			ret = list.get(curr);
		}
		return ret;
	}

	public boolean IsDone() {
		return curr >= list.size() ? true :  false ;
	}

	public Object CurrentItem() {
		return list.get(curr);
	}

}  
 /**
 * 聚合(Aggregate)
 */
public abstract class Aggregate {
	
	abstract Iterator CreateIterator();
	
}  
 import java.util.ArrayList;
import java.util.List;

/**
 * 具体聚合(ConcreteAggregate)
 */
public class ConcreteAggregate extends Aggregate {

	private List<Object> list = new ArrayList<Object>();

	public ConcreteAggregate(List<Object> list) {
		this.list = list;
	}

	public Iterator CreateIterator() {
		return new ConcreteIterator(list);
	}

}
  
 import java.util.Arrays;
import java.util.List;

/**
 * 客户端
 */
public class Client {

	public static void main(String[] args) {
		// 
		List<Object> list = Arrays.asList("11111111","22222222","33333333","44444444");
		Aggregate aggregate = new ConcreteAggregate(list);
		Iterator iterator = aggregate.CreateIterator();
		// iterator.First();
		while (!iterator.IsDone()) {
			System.out.println(iterator.CurrentItem());
			iterator.Next();
		}
	}

}  

文章来源:智云一二三科技

文章标题:Java,设计模式,行为型,迭代器模式,顺序访问聚合对象元素

文章地址:https://www.zhihuclub.com/186836.shtml

关于作者: 智云科技

热门文章

网站地图