Pattern Iterator cung cấp một cách để duyệt một collection tuần tự mà không lộ cấu trúc nội bộ của nó. Nó cơ bản đến mức được tích hợp vào hầu hết các ngôn ngữ hiện đại (vòng lặp for-of, iterator, generator).
Pattern Iterator làm gì
ITERATOR → truy cập các phần tử của một collection TUẦN TỰ mà không lộ nội bộ của nó:
→ cung cấp một cách chuẩn để duyệt (phần tử tiếp theo, còn nữa không?)
→ cấu trúc nội bộ của collection (mảng, cây, linked list) được GIẤU
→ tách logic duyệt khỏi collection
→ "duyệt mà không quan tâm collection được cấu trúc như thế nào"
