Muster von Iterator

In der objektorientierten Programmierung ist das iterator Muster ein Designmuster, in dem ein iterator verwendet wird, um einen Behälter zu überqueren und auf die Elemente des Behälters zuzugreifen. Das iterator Muster decouples Algorithmen von Behältern; in einigen Fällen sind Algorithmen notwendigerweise behälterspezifisch und können nicht so decoupled sein.

Zum Beispiel kann der hypothetische Algorithmus SearchForElement allgemein mit einem angegebenen Typ von iterator durchgeführt werden, anstatt es als ein behälterspezifischer Algorithmus durchzuführen. Das erlaubt SearchForElement, auf jedem Behälter verwendet zu werden, der den erforderlichen Typ von iterator unterstützt.

Definition

Die Essenz des Iterator Fabrikmethode-Musters soll eine Weise "zur Verfügung stellen, auf die Elemente eines gesamten Gegenstands folgend zuzugreifen, ohne seine zu Grunde liegende Darstellung auszustellen.".

Sprachspezifische Durchführung

Einige Sprachen standardisieren Syntax. C ++ und Pythonschlange sind bemerkenswerte Beispiele.

C ++

C ++ führt iterators mit der Semantik von Zeigestöcken auf dieser Sprache durch. In C ++ kann eine Klasse alle Zeigestock-Operationen überladen, so kann ein iterator dass Taten mehr oder weniger wie ein Zeigestock durchgeführt werden, der mit dereference, Zunahme und Verminderung abgeschlossen ist. Das hat den Vorteil, dass C ++ Algorithmen, die auf einfache alte Speicherpuffer sofort angewandt werden können, und dass es keine neue Syntax gibt, um zu erfahren. Jedoch verlangt es, dass ein "Ende" iterator für die Gleichheit prüft, anstatt einem iterator zu erlauben, zu wissen, dass es das Ende erreicht hat. In C ++ Sprache sagen wir dass iterator Modelle das iterator Konzept.

Pythonschlange

Pythonschlange schreibt eine Syntax für iterators als ein Teil der Sprache selbst vor, so dass Sprachschlüsselwörter wie Arbeit damit, was Pythonschlange Folgen nennt. Eine Folge hat eine Methode, die einen Iterator-Gegenstand zurückgibt. "iterator Protokoll", das verlangt, geben das folgende Element zurück oder erheben a

Java

Java lässt Iterator verbinden, dass die Sammlungen durchführen sollten, um die Elemente der Sammlung zu überqueren.

Siehe auch

  • Iterator
  • Behälter (Datenstruktur)
  • Beobachter-Muster
Zerlegbares Muster
  • Designmuster (Informatik)

Außenverbindungen

C#

Befehl-Muster / Dolmetscher-Muster
Impressum & Datenschutz