티스토리 뷰
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 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 아이폰
- 안드로이드
- 책
- java
- 모바일
- r
- 빅데이터
- 자바스크립트
- 통계
- 애플
- 도서
- XML
- 자바
- 마케팅
- ms
- HTML
- 디자인
- SCORM
- 웹
- 분석
- 프로젝트
- fingra.ph
- Hadoop
- mysql
- 맥
- 하둡
- 구글
- 세미나
- 클라우드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함
Blog is powered by
Tistory / Designed by
Tistory