Страницы

Поиск по вопросам

среда, 3 октября 2018 г.

Зачем нужен паттерн “итератор”?

На курсах C# регулярно говорят о паттерне "итератор". Зачем он вообще нужен если мы можем нужные элементы отправить в коллекцию и работать уже с ней? Зачем нужны пользовательские коллекции если можно использовать стандартные?


Ответ

Итератор это "не пользовательские коллекции", а инструмент обхода этой коллекции и не только коллекции, а вообще всего, что можно последовательно перебрать по какому то алгоритму. Обход коллекции всего лишь частный случай.
Алгоритм перебора скрыт внутри итератора, что позволяет иметь отдельно сам объект данных и много итераторов с разными алгоритмами обхода (SRP)
То есть итератор - класс инкапсулирующий в себе какой алгоритм обхода данных со стандартизированным интерфейсом "перечислитель"

Комментариев нет:

Отправить комментарий