Skip to main content

Яка мета патерну 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

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.