PDH 개발 공부

iterator 본문

Design Pattern/행위

iterator

IFBB 2021. 6. 30. 13:39

이터레이터 패턴(iterator pattern)이란?

  • 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있는 방법을 제공한다.

 

  • 이터레이터 패턴을 사용하면 모든 항목에 일일이 접근하는 작업을 컬렉션 객체가 아닌 반복자 객체에서 맡게 된다. 이렇게 하면 집합체의 인터페이스 및 구현이 간단해질 뿐 아니라, 집합체에서는 반복작업에서 손을 떼고 원래 자신이 할 일(객체 컬렉션 관리)에만 전념할 수 있다.

 

  • Aggregate : Aggregate의 역활
  • Iterator : 하나씩 나열하면서 검색을 실행하는 인터페이스
  • Book : 책을 나타내는 클래스
  • BookShelf : 서가를 나타내는 클래스
  • BookShelflterator : 서가를 검색하는 클래스
  • MainApp : 동작 테스트용 클래스
  • Iterator(반복자)의 역할 요소를 순서대로 검색해가는 인터페이스를 결정 다음 요소가 존재하는지를 얻기위한 hasNext()와 다음 요소를 얻기 위한 next()를 결정
  • ConcreateIterator(구체적인 반복자)의 역할 Iterator가 결정한 인터페이스를 실제로 구현 이 역할은 검색하기 위해 필요한 정보를 가지고 있어야 한다.
  • Aggregate(집합체)의 역할 Iterator역할을 만들어내는 인터페이스를 결정한다 이 인터페이스는 '내가 가지고 있는 요소를 순서대로 검색해 주는 사람'을 만들어 내는 메소드
  • ConcreateAggregate(구체적인 집합체)의 역할 Aggregate역할이 결정한 인터페이스를 실제로 구현하는 일을 한다 구체적인 Iterator 역할, 즉 ConcreteIterator역할의 인스턴스를 만든다

 

결과 - 적용해서 얻는 결과

  • iterator를 사용함 으로써 구현과 분리해서 하나씩 셀 수 있다

 

연관 패턴


Visitor패턴 : 많은 것이 모여 있는 내부를 돌아다니면서 같은 처리를 반복 적용해가는 패턴

Composite패턴 : Composite패턴은 재귀적인 구조를 갖는 페턴

Facory Method 패턴 : iterator메소드가 iterator 인스턴스를 작성할 때 Factory method 패턴이 사용되는 경우 가 있다.

'Design Pattern > 행위' 카테고리의 다른 글

Templatemethod  (0) 2021.06.30
Comments