patterns/iterator/README.md

24 lines
2.0 KiB
Markdown
Raw Normal View History

2022-12-05 07:38:19 +00:00
# Итератор
Поведенческий паттерн проектирования, который даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления.
Паттерн **Итератор** предоставляет меха­низм последовательного перебора элемен­тов кол­лекции без раскрытия ее внутрен­него представления.
## Принципы
- Класс должен иметь только одну причину для изменения
Поручая классу не только его не­посредственную задачу (управление коллекцией объ­ектов), но и дополнительные задачи (перебор), создаются две возможные причины для изменения. Теперь измениться может как внутренняя реализация коллек­ции, так и механизм перебора.
### Связность
![coupling_cohesion.png](coupling_cohesion.png)
Модуль или класс обладает ***высокой связностью*** (*high cohesion*), если он спроектирован для выполнения группы взаимосвязанных функций. Классы с ***низкой связностью*** (*low coupling*) проектируются на основе набора разрозненных функций.
Классы, соответствующие принципу, обычно обладают высокой связностью, и более просты в сопровождении, чем классы с многими обязанностями и низкой связностью.
## Схемы
![scheme-1](scheme-1.png)