This repository has been archived on 2022-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
patterns/iterator
Alexander Zhirov 935f9c7563 iterator 2022-11-17 15:39:07 +03:00
..
simpleiterator iterator 2022-11-17 15:39:07 +03:00
README.md iterator 2022-11-17 15:39:07 +03:00
coupling_cohesion.png iterator 2022-11-17 15:39:07 +03:00
scheme-1.png iterator 2022-11-17 15:39:07 +03:00

README.md

Итератор

Поведенческий паттерн проектирования, который даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления.

Паттерн Итератор предоставляет меха­низм последовательного перебора элемен­тов кол­лекции без раскрытия ее внутрен­него представления.

Принципы

  • Класс должен иметь только одну причину для изменения

Поручая классу не только его не­посредственную задачу (управление коллекцией объ­ектов), но и дополнительные задачи (перебор), создаются две возможные причины для изменения. Теперь измениться может как внутренняя реализация коллек­ции, так и механизм перебора.

Связность

coupling_cohesion.png

Модуль или класс обладает высокой связностью (high cohesion), если он спроектирован для выполнения группы взаимосвязанных функций. Классы с низкой связностью (low coupling) проектируются на основе набора разрозненных функций.

Классы, соответствующие принципу, обычно обладают высокой связностью, и более просты в сопровождении, чем классы с многими обязанностями и низкой связностью.

Схемы

scheme-1