Страницы

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

понедельник, 25 февраля 2019 г.

Паттерн Итератор

Определение : Паттерн «Итератор» представляет доступ ко всем элементам составного объекта, не раскрывая его внутреннего представления.
Что подразумевается под "не раскрывая его внутреннего представления" ?
Хотелось бы увидеть пример когда открытое представление и закрытое.


Ответ

Классический пример — List. Внутри он содержит по сути массив, в котором несколько последних элементов не используются. Но снаружи массива не видно. Вы можете обойти его через foreach (который использует внутри итератор), получить все элементы списка, но внутренний массив вы не увидите.
С другой стороны, List мог бы быть имплементирован по-другому, он мог бы выставить свой несущий массив наружу, и итерировать нужно было бы по массиву. Тогда он бы раскрыл внутреннее представление.

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

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