Java 디자인 패턴-04.Iterators
(Java 디자인 패턴 스터디 모집 중 : https://github.com/bluedskim/javaDesignPatterns)
패턴 다이어그램
“하나의 집합Collection의 모든 요소를 모두 접근하는 방법은 여러가지가 있을 수 있다” (출처:https://refactoring.guru/design-patterns/iterator)
해결하려는 문제
- 집합collection의 각각 항목 모두를 접근할 수 있는 일관된 방법을 제공.
특징/용도
- behavioral design patterns의 하나
- iterator는 해당 집합의 실제 구현과는 무관하다(Information Hiding, Separation of concerns).
고려사항
- Java 1.2 부터 Iterable, Iterator 인터페이스가 포함되어 있으므로 직접 만들 필요가 없다.
클래스 다이어그램
소스
- target
- MyIterable.java : 컨테이너가 구현해야하는 인터페이스
- ArrayContainer.java : 배열을 가지고 있는 객체
- ArrayIterator.java : 배열학목을 순서대로 접근하기 위한 iterator
- ReverseArrayIterator.java : 배열학목을 역순으로 접근하기 위한 iterator
- client : IteratorTest.java
