이터레이터 패턴

고장난 고양이·2022년 7월 8일
0

개발지식

목록 보기
9/25

이터레이터 패턴 (iterator pattern)


  • 행위(Behavioral) 패턴
  • 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체안에 들어있는 모든 항목에 접근할 수 있게 해 주는 방법을 제공해 주는 패턴
  • 이터레이터 패턴을 사용하면 집합체 내에서 어떤 식으로 일이 처리되는지 몰라도 그 안에 들어있는 항목들에 대해서 반복작업을 수행 할 수 있다

구조

  • Iterator
    집합체의 요소들을 순서대로 검색하기 위한 인터페이스 정의
  • ConcreateIterator
    Iterator 인터페이스를 구현함
  • Aggregate
    여러 요소들로 이루어져 있는 집합체
  • ConcreateAggregate
    Aggreagate 인터페이스를 구현하는 클래스

장단점


(장점)

  • 집합체 클래스의 응집도를 높여준다.
  • 집합체 내에서 어떤 식으로 일이 처리되는지 알 필요 없이, 집합체 안에 들어있는 모든 항목에 접근 할 수 있게 해준다.
  • 모든 항목에 일일이 접근하는 작업을 컬렉션 객체가 아닌 이터레이터 객체에서 맡게 된다. 이렇게 하면, 집합체의 인터페이스 및 구현이 간단해질 뿐만 아니라, 집합체에서는 반복 작업에서 손을 떼고 원래 자신이 할 일에만 전념할 수 있다.

(단점)

  • 단순한 순회를 구현하는 경우 클래스만 많아져 복잡도가 증가할 수 있다.

참고
https://velog.io/@cham/Design-Pattern-%EC%9D%B4%ED%84%B0%EB%A0%88%EC%9D%B4%ED%84%B0-%ED%8C%A8%ED%84%B4-iterator-pattern

profile
개발새발X발일지

0개의 댓글