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 }