Iterator
Architecture 🟢 JuniorDefinition
Fournit un moyen de parcourir sequentiellement les elements d'une collection sans exposer sa structure interne.
Analogie
Une playlist musicale : tu appuies sur 'suivant' sans savoir si c'est un tableau, un arbre ou une API.
Exemple de code
class Range {
constructor(start, end) { this.s = start; this.e = end; }
*[Symbol.iterator]() {
for (let i = this.s; i <= this.e; i++) yield i;
}
}
Cas d'usage
Parcourir des structures de donnees complexes (arbres, graphes) avec une interface uniforme.
Anti-pattern
Exposer la structure interne de la collection au code client.