본문 바로가기
지식/디자인패턴

Head First Design Patterns : Iterator pattern

by CodeRain 2024. 2. 25.

Iterator pattern

  • 컬렉션의 구현 방법을 노출하지 않으면서 집합체(Aggregator)내의 모든 항목에 접근하는 방법을 제공
    • Aggregator/Container :  Stack, Linked List, Tree 등..
  • 복잡하게 얽혀있는 자료 컬렉션들을 순횐하는 알고리즘 전략을 정의 하는 것.

 

구조

  • Iterator
    • 집합체의 요소들을 순서대로 검색하기 위한 인터페이스 정의
  • ConcreateIterator
    • Iterator 인터페이스를 구현함
  • Aggregate
    • 여러 요소들로 이루어져 있는 집합체
  • ConcreateAggregate
    • Aggreagate 인터페이스를 구현하는 클래스

 

장점

  • SRP
  • OCP

 

단점

  • 일부 컬렉션들의 요소들을 직접 탐색하는 것보다 덜 효율적 일 수 있음.

 

  • java.util.Iterator와 java.util.Scanner의 모든 구현.
  • java.util.Enumeration의 모든 구현.

 

참조