Iterator pattern
- 컬렉션의 구현 방법을 노출하지 않으면서 집합체(Aggregator)내의 모든 항목에 접근하는 방법을 제공
- Aggregator/Container : Stack, Linked List, Tree 등..
- 복잡하게 얽혀있는 자료 컬렉션들을 순횐하는 알고리즘 전략을 정의 하는 것.
구조

- Iterator
- 집합체의 요소들을 순서대로 검색하기 위한 인터페이스 정의
- ConcreateIterator
- Iterator 인터페이스를 구현함
- Aggregate
- 여러 요소들로 이루어져 있는 집합체
- ConcreateAggregate
- Aggreagate 인터페이스를 구현하는 클래스
장점
- SRP
- OCP
단점
- 일부 컬렉션들의 요소들을 직접 탐색하는 것보다 덜 효율적 일 수 있음.
예
- java.util.Iterator와 java.util.Scanner의 모든 구현.
- java.util.Enumeration의 모든 구현.
참조
- https://refactoring.guru/ko/design-patterns/iterator
- https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%EB%B0%98%EB%B3%B5%EC%9E%90Iterator-%ED%8C%A8%ED%84%B4-%EC%99%84%EB%B2%BD-%EB%A7%88%EC%8A%A4%ED%84%B0%ED%95%98%EA%B8%B0
- https://www.youtube.com/watch?v=wuehVcv2eOo
- https://velog.io/@cham/Design-Pattern-%EC%9D%B4%ED%84%B0%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4-iterator-pattern
'지식 > 디자인패턴' 카테고리의 다른 글
| Head First Design Patterns : State Pattern (0) | 2024.03.13 |
|---|---|
| Head First Design Patterns : Composite Pattern (0) | 2024.02.25 |
| Head First Design Patterns : Template Method Pattern (0) | 2024.01.29 |
| Head First Design Patterns : Facade Pattern (0) | 2024.01.29 |
| Head First Design Patterns : Adapter Pattern (0) | 2024.01.16 |