🕵️
Введение в паттерны
  • Введение в паттерны
  • Паттерны
    • Оглавление
    • Порождающие паттерны
      • Фабричный метод
        • Реализации на С++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач на С++
      • Абстрактная фабрика
        • Реализации на С++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач на С++
      • Прототип
        • Реализации на С++
        • Реализации на Kotlin
        • Реализации на Java
        • Возможные реализации для решения конкретных задач на С++
      • Строитель
        • Реализации на С++
        • Реализации на Kotlin
      • Одиночка
        • Реализации на C++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач на С++
      • Пул объектов
        • Реализации на С++
    • Структурные паттерны
      • Адаптер
        • Реализации на С++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач
      • Декоратор
        • Реализации на С++
        • Реализации на Kotlin
      • Компоновщик
        • Реализации на С++
      • Мост
        • Реализации на С++
      • Заместитель
        • Реализации на С++
        • Реализации на Kotlin
      • Фасад
        • Реализации на С++
      • Приспособленец
        • Реализации на С++
    • Поведенческие паттерны
      • Стратегия
        • Реализации на С++
        • Реализации на Kotlin
      • Команда
        • Реализации на С++
        • Реализации на Kotlin
      • Цепочка обязанностей
        • Реализации на С++
        • Реализации на Kotlin
      • Подписчик-издатель
        • Реализации на С++
        • Реализации на Kotlin
      • Посетитель
        • Реализации на С++
        • Возможные реализации для решения конкретных задач
      • Посредник
        • Реализации на С++
        • Реализации на Kotlin
      • Шаблонный метод
        • Реализации на С++
      • Опекун
        • Реализации на С++
      • Итератор
        • Реализации на С++
        • Реализации на Kotlin
      • Свойство
        • Реализации на С++
        • Возможные реализации для решения конкретных задач
  • Введение в идиомы
  • Идиомы
    • Оглавление
    • RAII
    • Type erasure
      • Контейнеры с type erasure
    • CRTP
    • Статический полиморфизм
    • Shrink to fit
    • Proxy
    • Erase remove
    • Decltype (auto)
    • Copy and swap
    • Safe bool
    • Scope guard
    • Addressof
Powered by GitBook
On this page
  • Назначение
  • Решаемые задачи
  • Преимущества
  • Недостатки
  • Связь с другими паттернами

Was this helpful?

  1. Паттерны
  2. Поведенческие паттерны

Итератор

Iterator

Назначение

Поведенческий паттерн итератор (Iterator) предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления.

Решаемые задачи

  • сохранение инкапсуляции объектов при переборе в структуре данных

  • поддержка нескольких активных обходов одного и того же агрегированного (составленного из подобъектов) объекта

  • предоставление единообразного интерфейса с целью обхода различных агрегированных структур (поддержка полиморфной итерации)

Преимущества

  • упрощение работы со структурами данных: обход элементов без знания об особенностях внутренней реализации структуры данных

  • возможность работать с различными типами структур данных независимо от их реализации

  • возможность реализовывать различные алгоритмы обработки структур данных

Недостатки

  • добавление новых типов структур данных может потребовать изменения кода итератора

Связь с другими паттернами

PreviousРеализации на С++NextРеализации на С++

Last updated 1 year ago

Was this helpful?

: итераторы довольно часто применяются для обхода рекурсивных структур, создаваемых компоновщиком.

: полиморфные итераторы поручают фабричным методам инстанцировать (создание экземпляров) подходящие подклассы класса Iterator.

: итератор может использовать хранитель для сохранения состояния итерации и при этом содержит его внутри себя.

Компоновщик
Фабричный метод
Хранитель