【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern

 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 }
原文地址:https://www.cnblogs.com/xiongjiawei/p/6846128.html