java 에서 array 모든 요소를 표시하기 위해서는 다음 for
문을 사용합니다.
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
여기에서 사용되고 있는 변수 i 의 기능을 추상화해서 일반화 한것을 디자인 패턴에서는 Iterator
이라고 합니다. 여기서 Iterator 패턴
이란, 요소들을 순서대로 지정하면서 전체를 검색 위한 것입니다.
아래는 Iterator 패턴을 구현한 예제 입니다.
Name | Description |
---|---|
Aggregate | 집합체를 표시하는 인터페이스 |
Iterator | 하나씩 나열하면서 검색을 실행하는 인터페이스 |
Book | 책을 표시하는 클래스 |
BookShelf | 서가를 표시하는 클래스 |
BookSheIfIterator | 서가를 검색하는 클래스 |
Main | 동작 테스트 클래스 |
Iterator
인터페이스는 요소를 순차적으로 하나씩 돌면서 루프 변수와 같은 역할을 수행합니다.
Iterator 인터페이스에서 선언된 메서드는 2개 입니다.
hasNext
: 다음요소가 존재하는지 확인하는 함수next
: 다음요소를 얻기 위한 함수Book
클래스는 책을 표시합니다. Book 클래스는 Name 을 초기화할 때 사용 할 생성자, Name 속성을 반환하는 get 함수가 있습니다.
BookShelf
클래스는 서가를 표시 합니다. 집합체로 사용하기 위해 Aggregate 인터페이스를 구현합니다. Aggregate 인터페이스에서 선언된 iterator
메서드를 사용 합니다.
BookShelfIterator
클래스는 Iterator 로 사용하기 위해서 Iterator 인터페이스를 구현합니다. Iterator 인터페이스에서 선언된 hasNext
, next
메서드를 사용 합니다.