C#/GoF 디자인패턴

[GoF]18. 반복자 패턴(Iterator Pattern)

공부를하자 2023. 12. 2. 17:36

1.정의

 접근기능과 자료구조를 분리시켜서 객체화하는 패턴. 컬렉션의 내부를 노출하지 않으면서 데이터를 순회하는

 객체를 제공한다.

 

2.다이어 그램

-IContainer 인터페이스는 추상된 컬렉션으로  보관하는 메서드와 삭제, 전체 해제,

 현재 보관된 수를 얻어오는 속성을 약속한다.

-Arr클래스는 IContainer를 받아 기능을 실질적 구현한다.

- IIterator인터페이스는 컬렉션 속성에 포함되어 컬렉션을 순회하기 전에 사용하는 메서드와 

 다음 위치로 변경하는 메서드, 현재 위치의 보관된 것을 얻어오는 속성을 약속한다.

-ArrIterator클래스는 Iiterator 받아 실질적 기능을 구현하고 Arr클래스의 내부에서 구현되어진다.

-Tracer 클래스는 간단한 테스트 객체.

3.구현

1)IContainer 인터페이스

2)IIterator인터페이스

3)Arr클래스

4)ArrIterator클래스

5)Tracer클래스