티스토리 뷰
Iterator Pattern - 디자인 패턴
참고서적 : Head First Design Pattern
소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html
패턴 정의 #10 - 이터레이터(iterator) Pattern
컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해주는 방법을 제공합니다.
반복적으로 처리해야 하는 것을 통합해 주는 패턴입니다.
배열, ArrayList, Hashtable등의 리스트 처리 방식이 모두 다릅니다.
이런 것을 iterator 패턴을 이용하면 동일한 방식으로 처리할 수 있습니다.
배열의 경우에는 직접 구현해 주어야 하지만, ArrayList나 Hashtable의 경우 java.util.Iterator를 이용하면 됩니다.
디자인 원칙
1. 클래스를 바꾸는 이유는 한 가지 뿐이어야 한다.
-> 클래스는 한가지 목적을 가지고 사용해야 한다는 의미입니다.
(두 가지 이상의 목적을 가지고 구현이 될 경우, 두 가지 이유 때문에 변경해야 하는 문제점도 발생할 수 있기 때문입니다.)
이터레이터 패턴은 일반적으로 많이 사용하기 때문에 클래스 다이어그램을 이해하는데 큰 어려움이 없을 것입니다.
iterator 인터페이스가 제공하는 hasNext(), next(), remove() 메소드를 유의해서 살펴보시기 바랍니다.
- Iterator 인터페이스에서는 모든 반복자에서 구현해야 하는 인터페이스를 제공하며
컬렉션에 들어있는 원소들에 돌아가면서 접근할 수 있게 해 주는 메소드들을 제공해야 합니다.
여기에서는 java.util.Iterator를 사용합니다.
자바에서는 기본으로 제공하는 Iterator 인터페이스를 사용하고 싶지 않다면 직접 인터페이스를 만들어서 써도 됩니다.
'XML Developer > 디자인 패턴' 카테고리의 다른 글
[디자인 패턴#12] 스테이트 패턴 (0) | 2008.01.21 |
---|---|
[디자인 패턴#11] 컴포지트 패턴 (0) | 2007.10.24 |
[디자인 패턴#9] 템플릿 메소드 패턴 (0) | 2007.09.05 |
[디자인 패턴#8] 어댑터와 퍼사드 패턴 (0) | 2007.08.10 |
[디자인 패턴#7] 커맨드 패턴 (0) | 2007.06.01 |
댓글
Blog is powered by
Tistory / Designed by
Tistory