여러 요소들을 담고 있는 객체의 내부 구조에 대한 이해없이 각 요소를 순서대로 접근하고 사용할 수 있도록 하는 패턴이다.
Iterator(반복자)
(인터페이스)
: 요소를 순서대로 검색해가는 인터페이스를 결정
ConcreateIterator(구체적인 반복자)
: Iterator가 결정한 인터페이스를 실제로 구현
Aggregate(집합체)
: Iterator 역할을 만들어내는 인터페이스를 결정
ConcreateAggregate(구체적인 집합체)
: Aggregate 역할이 결정한 인터페이스를 실제로 구현