Latest web development tutorials

tryb iteracyjny

Tryb iteracyjny (Iterator Wzorzec) środowisko programowania Java i .Net jest bardzo częstym wzorzec projektowy. Ten tryb służy do sekwencyjnego dostępu elementów z kolekcji obiektów, zbiór obiektów nie trzeba znać podstawową reprezentację.

Iterator wzór należy wzorców zachowań.

wprowadzenie

Intencją: zapewnienie sposobu dostępu do obiektu, w każdym elemencie polimeryzacji, ale nie ma potrzeby, aby odsłonić wnętrza obiektu.

Głównie do rozwiązania: inny sposób przemierzać cały obiekt integracji.

Kiedy stosować: przejeżdżające polimerowy obiekt.

Jak naprawić: spacer pomiędzy elementami odpowiedzialności iteratorów zamiast kruszywa obiektów.

Kod klawisza: zdefiniowanie interfejsu: hasNext obok.

Przykłady zastosowań: JAVA w iteracyjnej.

Zalety: 1, który obsługuje inny sposób przemierzać łączną obiekt.2, upraszczając klasę polimeryzacji iterator. 3, w tym samym polimeryzacji może mieć wiele przechodzenie. 4, w trybie iteracyjnym, dodać nową klasę polimerowego klasy iteratora i proste, bez modyfikowania oryginalnego kodu.

Wady: Ze względu na podział obowiązków iteratora wzór przechowywania danych i danych przemieszczenia, dodawanie nowych klas zagregowane wymagają odpowiedni wzrost nowej klasy iteratora, liczba par wzrostem klasy, co zwiększa złożoność systemu do pewnego stopnia.

Scenariusze użycia: 1, dostęp do polimerowego zawartości obiektu bez konieczności narażać swoją wewnętrzną reprezentację.2, potrzeba, aby zapewnić różne kruszywa sposobu Przedmiotem poprzecznym. 3 za przejazd inną strukturę zagregowanego zapewnia ujednolicony interfejs.

Uwagi: Tryb iteracyjny oddziela zachowanie przejścia z kolekcji obiektów, klasa abstrakcyjna iterator, który jest odpowiedzialny, tak że oba mogą być wykonane bez narażenia na wewnętrznej struktury zbiorów, ale także pozwolić kodu zewnętrznego przejrzysty dostęp do wewnętrznego gromadzenia danych.

realizacja

Będziemy tworzyć interfejsIteratornarracji i sposobu nawigacji Zwraca iterator interfejsupojemnika.Klasa EntityKontenerimplementuje interfejs będzie odpowiedzialny za wdrożenieinterfejsu Iterator.

IteratorPatternDemo,nasze zajęcia pokazowe użyć klasy encji wydrukowaćNamesRepositoryNamesRepository przechowywane jako zbiorunazw.

Iterator wzór diagram UML

Etap 1

Tworzenie interfejsu.

Iterator.java

public interface Iterator {
   public boolean hasNext ();
   Public Object next ();
}

Container.java

Pojemnik {public interface
   public Iterator getIterator ();
}

Etap 2

Tworzenie klasy podmiotKontenerimplementuje interfejs. Klasa ta zrealizowała interfejs klasy wewnętrznaNameIteratoriteratora.

NameRepository.java

public class NameRepository realizuje Container {
   Nazwy public string [] = { "Robert", "Jan", "Julie", "Lora"};

   @Override
   public Iterator getIterator () {
      powrót nowego NameIterator ();
   }

   prywatne klasy NameIterator implementuje Iterator {

      index int;

      @Override
      public boolean hasNext () {
         if (index <names.length) {
            return true;
         }
         return false;
      }

      @Override
      public Object next () {
         if (this.hasNext ()) {
            powrót nazwy [indeks ++];
         }
         powrót null;
      }		
   }
}

etap 3,

UżyjNameRepositorydostać iteratory i drukować nazwiska.

IteratorPatternDemo.java

{public class IteratorPatternDemo
	
   public static void main (String [] args) {
      NameRepository namesRepository = new NameRepository ();

      dla (Iterator ITER = namesRepository.getIterator (); iter.hasNext ();) {
         String name = (String) iter.next ();
         System.out.println ( "Nazwa:" + nazwa);
      } 	
   }
}

Etap 4

Sprawdź, czy wyjście.

Imię i nazwisko: Robert
Imię i nazwisko: John
Imię i nazwisko: Julie
Nazwa: Lora