Яка мета патерну Iterator?
Мета патерну Iterator (Ітератор) - надати єдиний спосіб послідовного обходу елементів колекції, не розкриваючи її внутрішню структуру.
1. Суть ідеї
Замість того щоб клієнт напряму працював з масивами, списками чи деревами, ітератор бере на себе логіку переходу від елемента до елемента.
Клієнту не потрібно знати:
- як влаштована колекція,
- як у ній зберігаються дані,
- яка логіка переходу (за порядком, углиб, за фільтром тощо).
Він просто використовує єдиний інтерфейс:
java
Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
Object item = iterator.next();
}2. Навіщо потрібен
- Щоб відокремити алгоритм обходу від структури колекції.
- Щоб уніфікувати доступ до елементів різних контейнерів (списків, дерев, хешів).
- Щоб підтримувати декілька способів обходу без дублювання логіки.
3. Переваги
- Інкапсуляція внутрішнього устрою колекції.
- Можливість створювати різні типи ітераторів (прямий, зворотний, фільтрувальний).
- Спрощення клієнтського коду - обхід завжди однаковий.
4. Приклад (Java)
java
List<String> list = List.of("A", "B", "C");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}Клієнт не знає, що всередині ArrayList - масив;
він просто послідовно отримує елементи.
Висновок
Патерн Iterator робить колекції зручними і універсальними у використанні, дозволяючи обходити їх без знання внутрішнього устрою і забезпечуючи єдиний інтерфейс навігації по елементах.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.