반복자 패턴은
- 컬렉션의 구현 방법을 노출하지 않으면서
- 집합체 내의 모든 항목에 접근하는 항목을 제시합니다.
장점
- 모든 항목에 접근하는 작업을 컬렉션 객체가 아닌 반복자 객체가 맡게 된다.
- 모든 집합체에서 쓸 수 있는 다형적 코드를 만들 수 있다.
유의점
- 반복자에는 특별한 순서가 정해져 있지 않습니다.
Iterator
public interface Iterator {
//수행할 항목이 있는지 여부 확인
boolean hasNext();
//다음 항목을 선택
IteratorItem next();
}
Iterator
- 자바의 모든 컬렉션 유형에서 Iterable 인터페이스를 구현합니다.
- 어떤 클래스에서 Iterable을 구현하면 그 클래스는 iterator() 메소드를 구현합니다.
그 메소드는 Iterator 인터페이스를 구현하는 반복자를 리턴합니다. - 배열은 자바 컬렉션이 아니라서 Iterable 인터페이스를 구현하지 않습니다.
- 향상된 for문도 포함됩니다.
- 이 인터페이스에는 forEach() 메소드가 기본으로 포함됩니다.
items.forEach(item -> System.out.println(item));
참고
에릭 프리먼, 엘리자베스 롭슨, 케이시 시에라, 버트 베이츠. 『헤드퍼스트 디자인패턴 개정판』. 한빛미디어, 2022
'Design Pattern' 카테고리의 다른 글
상태 패턴 (State Pattern) (0) | 2023.11.06 |
---|---|
템플릿 메소드 패턴 (Template Method Pattern) (1) | 2023.10.26 |
퍼사드 패턴 (Facade Pattern) (1) | 2023.10.24 |
어댑터 패턴 (Adapter Pattern) (0) | 2023.10.23 |
커맨드 패턴 (Command Pattern) (0) | 2023.09.27 |