반복자 패턴
컬렉션의 내부 구조를 노출하지 않고, 요소를 순차적으로 접근할 수 있게하는 패턴
대다수의 프로그래밍 언어에서는 반복자 역할을 하는 라이브러리를 기본적으로 제공해주거나 언어 자체에서 제공됨
배열인지, 맵인지, 리스트인지 알 필요없고
next(),hasNext()같은 공통 인터페이스로 순회\순회 로직을 컬렉션과 분리하여 컬렉션 구조가 변경 되더라도 클라이언트 코드는 수정할 필요가 없음
즉, 집합을 관리하는 역할 외 다른 역할(반복자 메서드) 책임을 분리하는것
컬렉션과 순회 책임 분리하여 단일책임원칙 준수할수 있게됨
1. Iterator 인터페이스
interface Iterator<T> {
hasNext(): boolean
next(): T
}2. Concrete Iterator 실제 순회 구현
필요에 따라 컬렉션을 특정 방법으로 순회하는 반복자를 만들 수 있음
3. Aggregate 컬렉션 인터페이스
4. Concrete Aggregate 실제 컬렉션 구현
5. 클라이언트 코드
Last updated