Итератор
Iterator
Назначение
Поведенческий паттерн итератор (Iterator) предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления.
Решаемые задачи
сохранение инкапсуляции объектов при переборе в структуре данных
поддержка нескольких активных обходов одного и того же агрегированного (составленного из подобъектов) объекта
предоставление единообразного интерфейса с целью обхода различных агрегированных структур (поддержка полиморфной итерации)
Преимущества
упрощение работы со структурами данных: обход элементов без знания об особенностях внутренней реализации структуры данных
возможность работать с различными типами структур данных независимо от их реализации
возможность реализовывать различные алгоритмы обработки структур данных
Недостатки
добавление новых типов структур данных может потребовать изменения кода итератора
Связь с другими паттернами
Компоновщик: итераторы довольно часто применяются для обхода рекурсивных структур, создаваемых компоновщиком.
Фабричный метод: полиморфные итераторы поручают фабричным методам инстанцировать (создание экземпляров) подходящие подклассы класса Iterator.
Хранитель: итератор может использовать хранитель для сохранения состояния итерации и при этом содержит его внутри себя.
Last updated
Was this helpful?