1 package com.tn.pattern; 2 3 public class Client { 4 public static void main(String[] args) { 5 Object[] objs={"飞","雪","连","天","射","白","鹿","笑","书","神"}; 6 Aggregate aggregate=new ConcreteAggregate(objs); 7 8 Iterator it=aggregate.iterator(); 9 it.first(); 10 it.next(); 11 System.out.println(it.isDone()); 12 it.currentItem(); 13 14 it.first(); 15 System.out.println("----------------------------------------"); 16 while(!it.isDone()){ 17 it.currentItem(); 18 it.next(); 19 } 20 } 21 } 22 23 interface Iterator{ 24 void first(); 25 void next(); 26 boolean isDone(); 27 void currentItem(); 28 } 29 30 interface Aggregate{ 31 Iterator iterator(); 32 } 33 34 class ConcreteAggregate implements Aggregate{ 35 private Object[] datas=new Object[10]; 36 37 public ConcreteAggregate(Object[] objs){ 38 this.datas=objs; 39 } 40 41 public Iterator iterator(){ 42 return new ConcreteIterator(); 43 } 44 45 class ConcreteIterator implements Iterator{ 46 private int index; 47 @Override 48 public void first() { 49 index=0; 50 } 51 @Override 52 public void next() { 53 index++; 54 } 55 @Override 56 public boolean isDone() { 57 return index>=datas.length; 58 } 59 @Override 60 public void currentItem() { 61 if(index<datas.length) 62 System.out.println(datas[index]); 63 } 64 } 65 }
时间: 2024-10-07 00:11:08