### **Iterator Pattern**
**Description:**
The Iterator Pattern provides a way to access the elements of a collection or
aggregate object sequentially without exposing its underlying representation.
It decouples the traversal algorithm from the collection itself, allowing you
to implement different iteration mechanisms.
**How and When to Use It:**
- **When to Use:** Use the Iterator Pattern when you need to traverse a
collection of items without revealing the collection's implementation details
or when you need multiple ways to traverse a collection.
- **Example:** In a data management application, implementing a custom iterator
allows you to traverse complex data structures like trees or graphs in a
controlled manner (e.g., depth-first or breadth-first traversal).