본문 바로가기

프로그래밍 강의 메모/코딩으로 학습하는 GoF의 디자인 패턴_백기선

행동 관련 디자인 패턴 > 이터레이터 패턴(Iterator Pattern)

https://inf.run/6Shr

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com

 

 

이터레이터 패턴

  • 행동 관련 디자인 패턴.
  • 집합 객체 내부 구조를 노출시키지 않고 순회하는 방법을 제공하는 패턴.
  • 집합 객체를 순회하는 클라이언트 코드를 변경하지 않고 다양한 순회 방법을 제공할 수 있다.

 

 

 

 

Iterator라는 인터페이스가 있고 클라이언트가 어떻게 순회할지 방법을 갖고 있다.

 

ConcreteIterator는 이 인터페이스를 실체화하고 구체적인 순회 로직이 들어가 있다.

 

 

 

 

 

 



 

 

이터레이터 패턴의 장점

1. 집합 객체가 가지고 있는 객체들에 손쉽게 접근할 수 있다.

클라이언트는 이터레이터가 갖고 있는 인터페이스만 알고 있으면 되고,

집합 객체가 어떠한 구조로 이루어져 있는지는 알 필요가 없다.

집합 객체가 리스트를 사용하는지 아니면 셋을 사용하는지 트리구조인지 스택구조인지 신경쓸 필요가 없다.

순회하는 방법만 따로 책임이 분리되었기에 단일 책임 원칙을 만족하는 구조로 볼 수 있다.

 

2. 일관된 인터페이스를 사용해 여러 형태의 집합 구조를 순회할 수 있다.

기존의 코드의 큰 변경사항 없이 집합 객체를 순회할 수 있어서 개방 폐쇄 원칙을 만족한다.