이터레이터 패턴
이터레이터 패턴이란?⌗
반복자를 사용하여 컨테이너를 가로지르며 컨테이너의 요소들에 접근하는 디자인 패턴으로
컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해주는 방법을 제공해 준다.
구조⌗
Aggreate
Iterator 객체를 생성하는 인터페이스ConcreateAggreate
Iterator를 제공하는 인터페이스의 구현체Iterator
원소를 순회 및 접근하는 인터페이스ConcreateIterator
Iterator의 구현체
왜 사용할까?⌗
이터레이터 패턴을 사용할 경우
아래와 같은 특성이 생기게 되는데
- 집합체의 응집도가 높아진다
- 집합체 내부 구현을 숨길 수 있다.
- 집합체 내부 정보를 알필요 없이, 집합체의 모든 항목에 접근할 수 있다.
이러한 특성으로 인해 아래와 같은 목적 등으로 사용한다.
-
집합체의 내부 구현을 보여주지 않고 접근을 허용하고 싶을때.
-
집약체에 다양한 탐색 방법이 필요한 경우.
-
서로 다른 집합 구조에 대해서도 동일한 방법으로 접근하고 싶을 경우.