🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
4 messages
4 total messages Started by Passero Thu, 15 Apr 2004 09:21
iterator pattern vraagje
#2671
Author: Passero
Date: Thu, 15 Apr 2004 09:21
10 lines
1798 bytes
Ik moet een werkje maken over het iterator pattern maar ik zit met een
klein probleempje. Overal waar ik een definitie zie staat er dat het
pattern gebruikt wordt om sequentieel door een collectie te lopen zonder
dat je de implementatie kent. Maar van wat moet je de implementatie niet
kennen? Van die collection of van de objecten in de collection? 
Lijkt dat pattern dan niet een beetje op het adapter pattern? Als je bij
de iterator een interface maakt met getNext, getFirst enzo en je maakt
verschillende concrete klassen, voorbeeld voor een recordset en voor een
gewoon sequentieel bestand dan heb je toch iets gelijk een adapter of ben
ik verkeerd bezig? 
Re: iterator pattern vraagje
#2674
Author: Tim Van Wassenhove
Date: Thu, 15 Apr 2004 15:45
24 lines
1960 bytes
In article <pan.2004.04.15.09.22.22.181783@pandora.be>, Passero wrote:
> Ik moet een werkje maken over het iterator pattern maar ik zit met een
> klein probleempje. Overal waar ik een definitie zie staat er dat het
> pattern gebruikt wordt om sequentieel door een collectie te lopen zonder
> dat je de implementatie kent. Maar van wat moet je de implementatie niet
> kennen? Van die collection of van de objecten in de collection? 
> Lijkt dat pattern dan niet een beetje op het adapter pattern? Als je bij
> de iterator een interface maakt met getNext, getFirst enzo en je maakt
> verschillende concrete klassen, voorbeeld voor een recordset en voor een
> gewoon sequentieel bestand dan heb je toch iets gelijk een adapter of ben
> ik verkeerd bezig? 

Iterator is een interface met volgende functies (kan je opzoeken in de
api of ik geen methode vergeet):
boolean hasNext();
Object nextElement();

Als een klasse deze interface implementeert, dan kan je door alle
elementen in de klasse lopen (itereren) dmv de bovenvermelde functies.

Voordeel is dat je op een uniforme manier door verzamelingen kan lopen. 

-- 
http://home.mysth.be/~timvw
Re: iterator pattern vraagje
#2678
Author: Stijn De Smet
Date: Thu, 15 Apr 2004 17:12
21 lines
2293 bytes
Passero wrote:

> Ik moet een werkje maken over het iterator pattern maar ik zit met een
> klein probleempje. Overal waar ik een definitie zie staat er dat het
> pattern gebruikt wordt om sequentieel door een collectie te lopen zonder
> dat je de implementatie kent. Maar van wat moet je de implementatie niet
> kennen? Van die collection of van de objecten in de collection?
> Lijkt dat pattern dan niet een beetje op het adapter pattern? Als je bij
> de iterator een interface maakt met getNext, getFirst enzo en je maakt
> verschillende concrete klassen, voorbeeld voor een recordset en voor een
> gewoon sequentieel bestand dan heb je toch iets gelijk een adapter of ben
> ik verkeerd bezig?
Een Iterator wordt gebruikt om over de elementen van een collection te
lopen.
Als je bvb een unidirectionele interator hebt, dan weet je dat je in 1
richting over de collection kan lopen, ongeacht welke implementatie die
collection heeft (Vector, Set, Map,...).  De Iterator kent dus de interne
structuur van de collection, maar de gebruiker moet enkel de iterator
kennen en gebruiken, en hoeft niets te weten van de collection zelf.
-- 
Stijn De Smet
Re: iterator pattern vraagje
#2679
Author: Robert Jan Schaper
Date: Fri, 16 Apr 2004 06:20
27 lines
2137 bytes
Passero wrote:

> Ik moet een werkje maken over het iterator pattern maar ik zit met een
> klein probleempje. Overal waar ik een definitie zie staat er dat het
> pattern gebruikt wordt om sequentieel door een collectie te lopen zonder
> dat je de implementatie kent. Maar van wat moet je de implementatie niet
> kennen? Van die collection of van de objecten in de collection?

Liefst van beide niet, je hoort enkel de interface te kennen zodat je later
de implementatie van deze klassen kunt varieren zonder veranderingen in de
rest van de app.


> Lijkt dat pattern dan niet een beetje op het adapter pattern? Als je bij
> de iterator een interface maakt met getNext, getFirst enzo en je maakt
> verschillende concrete klassen, voorbeeld voor een recordset en voor een
> gewoon sequentieel bestand dan heb je toch iets gelijk een adapter of ben
> ik verkeerd bezig?

Het belangrijkste verschil is dat je meerdere iteratoren tegelijk kunt
gebruiken met een enkel collectie object omdat niet de collectie maar de
iteratoren de staat van de iteratie bevatten. Erg makkelijk voor
bijvoorbeeld een historie mechanisme: je duwt gewoon een iterator op een
stack.

-- 
Rob
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads