Iterator 패턴

Ilyoung Hwang·2021년 9월 18일
0

java 에서 array 모든 요소를 표시하기 위해서는 다음 for 문을 사용합니다.

	for(int i = 0; i < array.length; i++){
	    	System.out.println(array[i]);
    	}

여기에서 사용되고 있는 변수 i 의 기능을 추상화해서 일반화 한것을 디자인 패턴에서는 Iterator 이라고 합니다. 여기서 Iterator 패턴 이란, 요소들을 순서대로 지정하면서 전체를 검색 위한 것입니다.

아래는 Iterator 패턴을 구현한 예제 입니다.

사용될 class, interface

NameDescription
Aggregate집합체를 표시하는 인터페이스
Iterator하나씩 나열하면서 검색을 실행하는 인터페이스
Book책을 표시하는 클래스
BookShelf서가를 표시하는 클래스
BookSheIfIterator서가를 검색하는 클래스
Main동작 테스트 클래스

1. Iterator 인터페이스

Iterator 인터페이스는 요소를 순차적으로 하나씩 돌면서 루프 변수와 같은 역할을 수행합니다.

Iterator 인터페이스에서 선언된 메서드는 2개 입니다.

  • hasNext : 다음요소가 존재하는지 확인하는 함수
  • next : 다음요소를 얻기 위한 함수

2. Book 클래스

Book 클래스는 책을 표시합니다. Book 클래스는 Name 을 초기화할 때 사용 할 생성자, Name 속성을 반환하는 get 함수가 있습니다.

3. BookShelf 클래스

BookShelf 클래스는 서가를 표시 합니다. 집합체로 사용하기 위해 Aggregate 인터페이스를 구현합니다. Aggregate 인터페이스에서 선언된 iterator 메서드를 사용 합니다.

4. BookShelfIterator 클래스

BookShelfIterator 클래스는 Iterator 로 사용하기 위해서 Iterator 인터페이스를 구현합니다. Iterator 인터페이스에서 선언된 hasNext, next 메서드를 사용 합니다.

0개의 댓글