Home 이터레이터 패턴(Iterator Pattern)
Post
Cancel

이터레이터 패턴(Iterator Pattern)


이터레이터 패턴이란?

  • 컬렉션의 요소를 순차적으로 접근하거나 탐색하기 위한 디자인 패턴 중 하나이다.
  • 컬렉션 내부 구조에 대한 세부 정보를 숨기고, 일관된 방법으로 요소에 접근할 수 있는 방법을 제공한다.

구성 요소

  • 이터레이터(Iterator): 요소를 순차적으로 접근하거나 탐색하는 데 사용되는 인터페이스
  • 컬렉션(Collection): 요소의 집합을 나타내는 인터페이스이다.

장점

  • 캡슐화: 컬렉션의 내부 구조에 대한 세부 정보를 숨기고, 외부에 일관된 인터페이스를 제공한다.
  • 유연성: 이터레이터를 통해 컬렉션의 요소에 접근할 수 있으므로, 컬렉션 내부 구조의 변경이 클라이언트 코드에 영향을 미치지 않습니다.

단점

  • 추가적인 오버헤드: 이터레이터를 생성하고 사용하는 데에는 약간의 오버헤드가 발생할 수 있다.
    이는 간단한 순회에는 큰 영향을 미치지 않지만, 요소가 많거나 반복이 빈번한 경우에는 고려해야 한다.

구현 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package exam;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorPatternExample {
  public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("Apple");
    list.add("Banana");
    list.add("Orange");

    Iterator<String> iterator = list.iterator(); // 이터레이터 패턴
    while (iterator.hasNext()) {
      String item = iterator.next();
      System.out.println(item);
    }
  }
}


마치며

  • 컬렉션과 요소 간의 결합도를 낮추고, 클라이언트가 컬렉션의 요소에 일관된 방법으로 접근할 수 있도록 한다.
  • 이 패턴은 캡슐화와 유연성을 제공하여 코드의 유지보수성을 향상시킨다.
This post is written by PRO.