Iterator 패턴은 ?
Iterator는 자바에서 제공해주기도 한다.
그럼 Iterator는 무엇인가 ?
대부분의 자료구조는 Iterator를 사용할 수 있다. list, HashMap, Array 등등..
그 이유는
java.util 내에 있는 자료구조들은 collection을 상속받았고 collection은 또한 iterable을 상속 받았기 때문에 가능한 것이다.
Iterator 패턴은 무엇인가 ?
프로젝트를 수행하다보면 여러가지 자료구조를 다뤄야 할 때가 있다. 이때 다양한 자료구조를 사용한다는 것은 관리해야할 필요성이 있다는 것이다. 개발자로 하여금 좀 더 유지보수와 관리의 편의성을 높이기 위해서 사용하는 것이 iterator 패턴이라 말할 수 있다. 하지만 iterator 패턴은 하나의 패턴만을 사용하자고 말하는 것은 아니다.
iterator 패턴은 이렇다.
예를 들어 여러가지 자료구조가 존재한다. 그 여러가지 자료구조는 각각의 형태에 맞는 구현부를 작성을 해야한다. iterator 패턴을 사용하면 iterator를 사용하여 다양한 자료구조를 동일한 방식으로 검색 할 수 있다.
예를 들어보자.
카세트가 존재한다. 이 카세트는 CD, USB, 테이프가 사용 가능하다. 내가 모르는 사람이 CD, UBS, 테이프를 넣어뒀지만 그 내용이 어떻게 들어가있는지 몰라도 듣는 사람은 '뒤로가기',재생','일시정지','앞으로가기' 만 수행하여도 곡의 탐색이 가능하다는 말이다.
이 처럼 iterator 패턴은 내부에 자료구조의 형식이라든지 각각의 원소값의 형태가 어떠한 형식으로 담겨져 있는지 몰라도 상관없다. 단지 iterator의 hasNext(), next()만으로 가져올 수 있다.
물론 자바에서 제공하는 Iterator를 사용해도 된다.
하지만, iterator 기능을 정의해놓은 인터페이스를 각각의 자료구조 형태에 맞게 만들고 구현해서 사용해도 된다.
장점 ?
속사정은 몰라도 된다. 유지보수에 용이하다.
'STUDY' 카테고리의 다른 글
[PYTHON] 파이썬으로 Twitter Crawler 구현 (0) | 2019.08.05 |
---|---|
[프로그램]VO,XML,PROPERTIES 등 생성기 (0) | 2015.07.17 |
[SPRING] SPRING MVC 웹 프로그래밍 3장 (2) | 2014.04.13 |
[패턴(Thread)]Immutable Pattern (0) | 2013.11.14 |