Il pattern Iterator fornisce un modo per attraversare una collezione sequenzialmente senza esporre la sua struttura interna. È così fondamentale che è integrato nella maggior parte dei linguaggi moderni (cicli for-of, iteratori, generatori).
Cosa fa il pattern Iterator
ITERATOR → access elements of a collection SEQUENTIALLY without exposing its internals:
→ provides a standard way to traverse (next element, has more?)
→ the collection's internal structure (array, tree, linked list) is HIDDEN
→ decouples traversal logic from the collection
→ "iterate without caring how the collection is structured"
