18. 반복자 패턴(Iterator Pattern)
프로그램을 하다 보면 개체들을 보관하는 컬렉션 개체를 사용하는 것은 매우 흔한 일입니다. 그리고, 컬렉션의 안전성을 유지하기 위해서는 개체를 보관하는 공간을 직접적으로 노출시키지 않게 됩니다. 하지만 사용자의 경우 컬렉션에 보관된 개체들의 정보를 검색할 수 있어야 하며 경우에 따라서는 보관된 개체들에 대해 반복된 작업을 수행하기를 원하는 경우가 있습니다. 반복자 패턴은 컬렉션 개체의 내부 저장 공간에 대해 직접적으로 노출하는 것을 막으면서 보관된 개체들에 대해 반복된 작업을 수행할 수 있는 방법을 제공하고자 할 때 사용하는 패턴입니다.
반복자 패턴에서는 컬렉션을 반복 순회하면서 작업을 수행할 필요가 있을 때 순회할 수 있는 도구 개체를 정의합니다. 그리고, 사용자는 컬렉션을 통해 순회자 개체를 얻을 수 있으며 순회자를 통해 컬렉션에 보관된 개체들에 대해 반복적인 작업을 수행할 수 있게 합니다. 컬렉션 형식에 상관없이 순회 방법을 추상화하면 사용자는 여러 컬렉션을 동일한 방법으로 사용할 수 있게 됩니다. C#에서는 컬렉션에 대한 순회 방법을 추상화하여 IEnumerator, IEnumerable 인터페이스를 제공하고 있습니다.
2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 반복자 패턴(Iterator Pattern) - 개요, 시나리오
2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 반복자 패턴(Iterator Pattern) - 설계(Design)
2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 반복자 패턴(Iterator Pattern) - 구현
'프로그래밍 기술 > Escort GoF의 디자인 패턴 C#' 카테고리의 다른 글
[소프트웨어 패턴 C#] 23.전략 패턴(Strategy Pattern) (0) | 2016.04.17 |
---|---|
[소프트웨어 패턴 C#] 22. 상태 패턴(State Pattern) (0) | 2016.04.17 |
[소프트웨어 패턴 C#] 21.감시자 패턴(Observer Pattern) (0) | 2016.04.17 |
[소프트웨어 패턴 C#] 20. 메멘토 패턴 (Memento Pattern) (0) | 2016.04.17 |
[소프트웨어 패턴 C#] 19. 중재자 패턴 (Mediator Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 17. 해석자 패턴 (Iterpreter Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 16. 명령 패턴 (Command Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 14. 프락시 패턴 (Proxy Pattern) - 보호용 프락시 (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 13. 프락시 패턴 (Proxy Pattern) - 가상 프락시 (0) | 2016.04.17 |