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