« Patrons de conception/Itérateur » : différence entre les versions

Contenu supprimé Contenu ajouté
Ilario (discussion | contributions)
mAucun résumé des modifications
m - autoliens
Ligne 1 :
En [[génie logiciel]], l'[[Itérateur (Motif de conception)|Itérateur]]'''itérateur''' est un [[motif de conception]] ''(design pattern)'' [[motif de conception#Comportemental|comportemental]].
 
Un [[itérateur (Motif de conception)|itérateur]] est un objet qui permet de parcourir tous les éléments contenus dans un autre objet, le plus souvent un conteneur ([[liste]], [[arbre (informatique)|arbre]], etc). Un synonyme d'[[itérateur (Motif de conception)|itérateur]] est [[curseur]], notamment dans le contexte des [[base de données|bases de données]].
 
==Description==
 
Un [[itérateur (Motif de conception)|itérateur]] ressemble à un [[pointeur]] disposant essentiellement de deux primitives: ''accéder'' à l'élément pointé en cours (dans le conteneur), et ''se déplacer'' pour pointer vers l'élément suivant. En sus, il faut pouvoir créer un itérateur pointant sur le premier élément; ainsi que déterminer à tout moment si l'itérateur a épuisé la totalité des éléments du conteneur. Diverses implantations peuvent également offrir des comportements supplémentaires.
 
Le but d'un [[itérateur (Motif de conception)|itérateur]] est de permettre à son utilisateur de ''parcourir'' le conteneur, c'est-à-dire d'accéder séquentiellement à tous ses éléments pour leur appliquer un traitement, tout en isolant l'utilisateur de la structure interne du conteneur, potentiellement complexe. Ainsi, le conteneur peut stocker les éléments de la façon qu'il veut, tout en permettant à l'utilisateur de le traiter comme une simple liste. Le plus souvent l'itérateur est conçu en même temps que la classe-conteneur qu'il devra parcourir, et ce sera le conteneur lui-même qui créera et distribuera les itérateurs pour accéder à ses éléments.
 
==Différences avec l'indexation==