}
/**
* ÄÚ²¿³ÉÔ±À࣬¾ßÌåµü´ú×ÓÀà
*/
private class ConcreteIterator implements Iterator
{
//ÄÚ²¿Ë÷Òý£¬¼Ç¼µ±Ç°µü´úµ½µÄË÷ÒýλÖÃ
private int index = 0;
//¼Ç¼µ±Ç°¾Û¼¯¶ÔÏóµÄ´óС
private int size = 0;
/**
* ¹¹Ô캯Êý
*/
public ConcreteIterator(){
this.size = objArray.length;
index = 0;
}
/**
* µü´ú·½·¨£º·µ»¹µ±Ç°ÔªËØ
*/
@Override
public Object currentItem() {
return objArray[index];
}
/**
* µü´ú·½·¨£ºÒƶ¯µ½µÚÒ»¸öÔªËØ
*/
@Override
public void first() {
index = 0;
}
/**
* µü´ú·½·¨£ºÊÇ·ñΪ×îºóÒ»¸öÔªËØ
*/
@Override
public boolean isDone() {
return (index >= size);
}
/**
* µü´ú·½·¨£ºÒƶ¯µ½ÏÂÒ»¸öÔªËØ
*/
@Override
public void next() {
if(index < size)
{
index ++;
}
}
}
}
public class ConcreteAggregate extends Aggregate {
private Object[] objArray = null;
/**
* ¹¹Ôì·½·¨£¬´«Èë¾ÛºÏ¶ÔÏóµÄ¾ßÌåÄÚÈÝ
*/
public ConcreteAggregate(Object[] objArray){
this.objArray = objArray;
}
@Override
public Iterator createIterator() {
return new ConcreteIterator();
}
/**
* ÄÚ²¿³ÉÔ±À࣬¾ßÌåµü´ú×ÓÀà
*/
private class ConcreteIterator implements Iterator
{
//ÄÚ²¿Ë÷Òý£¬¼Ç¼µ±Ç°µü´úµ½µÄË÷ÒýλÖÃ
private int index = 0;
//¼Ç¼µ±Ç°¾Û¼¯¶ÔÏóµÄ´óС
private int size = 0;
/**
* ¹¹Ô캯Êý
*/
public ConcreteIterator(){
this.size = objArray.length;
index = 0;
}
/**
* µü´ú·½·¨£º·µ»¹µ±Ç°ÔªËØ
*/
@Override
public Object currentItem() {
return objArray[index];
}
/**
* µü´ú·½·¨£ºÒƶ¯µ½µÚÒ»¸öÔªËØ
*/
@Override
public void first() {
index = 0;
}
/**
* µü´ú·½·¨£ºÊÇ·ñΪ×îºóÒ»¸öÔªËØ
*/
@Override
public boolean isDone() {
return (index >= size);
}
/**
* µü´ú·½·¨£ºÒƶ¯µ½ÏÂÒ»¸öÔªËØ
*/
@Override
public void next() {
if(index < size)
{
index ++;
}
}
}
}
¡¡¡¡¿Í»§¶ËÀà
[java]
public class Client {
public void operation(){
Object[] objArray = {"One","Two","Three","Four","Five","Six"};
//´´½¨¾ÛºÏ¶ÔÏó
Aggregate agg = new ConcreteAggregate(objArray);
//Ñ»·Êä³ö¾ÛºÏ¶ÔÏóÖеÄÖµ
Iterator it = agg.createIterator();
while(!it.isDone()){
System.out.println(it.currentItem());
it.next();
}
}
public static void main(String[] args) {
Client client = new Client();
client.operation();
}
}
public class Client {
public void operation(){
Object[] objArray = {"One","Two","Three","Four","Five","Six"};
//´´½¨¾ÛºÏ¶ÔÏó
Aggregate agg = new ConcreteAggregate(objArray);
//Ñ»·Êä³ö¾ÛºÏ¶ÔÏóÖеÄÖµ
Iterator it = agg.createIterator();
while(!it.isDone()){
System.out.println(it.currentItem());
it.next();
}
}
public static void main(String[] args) {
Client client = new Client();
client.operation();