| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| notzucht Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 2.939
|
Tach die Damen ![]() Ich habe heute mal ein Paar Fragen bezüglich der Architektur und Funktionalität von Iteratoren. Das Root-Interface sieht aktuell wie folgt aus: PHP-Code: Alle Iteratoren sollen eine Mindestfunktionalität in Form von Vorwärts- und Rückwärtstraversiebarkeit des Aggregates aufweisen. Implementierungsmöglichkeiten Damit die Ausführungen nicht ganz so trocken werden nehmen wir einen Array-Iterator der das übergebene Array vorwärts und rückwärts traversieren können soll. Die "Robustheit" der jeweiligen Implementierung, und die fehlende remove Methode im Iterator Interface sollen vorerst keine Beachtung finden, das kommt aus Platz- und Verständlichkeitsgründen später. Los gehts. Möglichkeit eins:Es wird ein abstrakter Iterator AbstractArrayIterator erstellt welcher die Schnittstelle Iterator implementiert. Für die jeweilige Art der Traversierung werden zwei zusätzliche konkrete Iteratoren erstellt.Möglichkeit zwei: Ich kann mich bisher nicht so recht für eine bestimmte Variante entscheiden. Sicher ist nur das der Traversierungsalgorithmus im Iterator selbst stecken soll, und alle konkreten Iteratoren als externer Iterator implementiert werden, aka. der Client treibt die Iteration selbst voran. Mein Favorit ist Möglichkeit zwei, wie seht ihr das? Habt ihr andere Vorschläge? lg, shorty
__________________ . Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir . |
| | |
| | #3 (permalink) |
| notzucht Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 2.939
|
Moin Flo, ich schreibe gerade ein Package welches die für mich wichtigsten konkreten Iterator-Implementierungen enthält (StringIterator, ArrayIterator, ObjectIterator). Damit Schnittstelle, Architektur und interner Aufbau möglichst gleich sind, und bleiben frage ich welche die günstigere Methode ist. Wenn ich damit fertig bin gehts weiter mit dem collection package. Spätestens da möchte ich nicht mehr an den Iteratoren fummeln. Edit: previous & hasPrevious fallen nach aktuellem Stand vollständig aus, da diese Funktionalität wie z.B. in bsp 2 geschrieben durch den Zustand des Iterators gewährleistet wird, und die Schnittstelle schön schlank bleibt.
__________________ . Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir . Geändert von shorty (08-10-2007 um 19:48 Uhr) |
| | |
| | #4 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.901
| Die States beschreiben, ob der interne Zähler inkrementiert oder dekrementiert werden? Also ich würde mich entweder für Version 2 entscheiden oder einfach zusätzliche Funtionen add und previous implementieren. Edit: hab das mit den Funktionen gerade gelesen. Dann Version 2. Geändert von Omega Psi (08-10-2007 um 19:56 Uhr) |
| | |
| | #5 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.950
|
Ist 1 nicht die übliche Variante? Bzw sowas: Code:
Geändert von sebastian (08-10-2007 um 20:05 Uhr) |
| | |
| | #6 (permalink) |
| notzucht Registriert seit: Nov 2003 Ort: Potsdam
Beiträge: 2.939
|
@Sebastian dito! @Flo Version 2 finde ich persönlich auch am schicksten, hat auch n weilchen gedauert bis ich da angekommen bin
__________________ . Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir . |
| | |
| | #7 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.901
| Hm, kann ich an dieser Stelle nicht soviel zu sagen. Ich arbeite nicht oft mit Iteratoren, nur wenn ich Mengen von Objekten untersuche, aus denen ich dann auch Objekte kicken will... und da bau ich mir meistens noch die previous Funktionen ein. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |