Iterator

Iterator to wzorzec należący do grupy wzorców czynnościowych, jego głównym zadaniem jest zapewnienie sekwencyjnego dostępu do kolekcji obiektów zawartej w większym obiekcie. Celem zastosowania tego wzorca jest dostarczenie interfejsu dostępu do elementów obiektu bez konieczności przedstawienia jego struktury.

Przykładowy interfejs iteratora:

  1. interface Iterator {
  2.     // Czy nawiera następny obiekt
  3.     public boolean hasNext();
  4.  
  5.     // Zwraca następny obiekt
  6.     public Object next();
  7. }

Przykładowa klasa dostarczająca Iterator:

  1. class Obiekty {
  2.     private static final int ILOSC_OBIEKTOW = 10;
  3.     private Obiekt [] obiekty = new Obiekt[Obiekty.ILOSC_OBIEKTOW];
  4.     public Obiekty() {
  5.         for (int i=0; i<Obiekty.ILOSC_OBIEKTOW; i++) {
  6.              obiekty[i] = new Obiekt(i);
  7.         }
  8.     }
  9.     public Iterator getIterator() {
  10.         return new ObiektIterator(this.obiekty);
  11.     }
  12.     private class ObiektIterator implements Iterator {
  13.         private Obiekt [] obiekty;
  14.        
  15.         public boolean hasNext() {
  16.         }
  17.         public Object next() {
  18.         }
  19.     }
  20. }