디자인 패턴 - 이터레이터 패턴(Iterator pattern)

정의 : 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해 주는 방법을 제공하는 패턴

객체의 컬렉션에 대한 반복작업을 처리하는 방법을 캡슐화.
이터레이터 인터페이스를 정의해두고, 콜렉션에서는 이 인터페이스를 구현. 클라이언트에서는 이터레이터를 이용해 어떤 컬렉션이든 같은 방식으로 사용 가능.

HasNext(), MoveNext()
이터레이터는 기본적으로 위의 두 메소드를 구현해둔다.

보통 이터레이터를 컬렉션으로부터 얻었을 때, 이터레이터는 첫 번째 항목이 아니라 그 이전을 가리키고 있다. 즉, MoveNext()를 최초 한 번 수행해서 얻는 값이 컬렉션의 첫번째 값.

예시:
SomeCollection : Itrerator
Client.main(){ Iterator iter = SomeCollection.GetIterator(); iter.Next(); ]

댓글

이 블로그의 인기 게시물

디자인 패턴 - 더티 플래그(Dirty flag)

디자인 패턴 - 서비스 중개자 패턴(Service locator pattern)

인공지능 - 유한 상태 기계(Finite state machine)