반응형

반복자 패턴(Iterator Pattern) 4

[C#] 반복자 패턴(Iterator Pattern) - 구현

18. 반복자 패턴(Iterator Pattern) [그림] 반복자 패턴 클래스 다이어그램 18.4 구현 반복자 패턴에 대한 예제 프로그램을 구현하는 순서는 Collection, Iterator, Arr과 ArrIterator, Tracer순으로 하겠습니다. 18.4.1 IContainer IContainer에서는 일반적으로 컬렉션에 필요한 메서드에 대한 구현 약속만 하면 되겠죠. 여기에서는 보관하는 메서드와 삭제, 전체 해제, 현재 보관된 수를 얻어오는 속성에 대한 약속을 하겠습니다. IIterator.cs using System; namespace Iterator { interface IIterator { void Begin(); bool MoveNext(); Object Current { get; ..

[C#] 반복자 패턴(Iterator Pattern) - 설계(Design)

18. 반복자 패턴(Iterator Pattern) 18. 3 디자인 C#에서는 IEnumerator, IEnumerable 인터페이스를 약속하고 ArrayList나 배열과 같은 컬렉션들이 이들 인터페이스를 구현 약속함으로써 사용자가 foreach 구문을 통해 컬렉션의 요소들을 반복적으로 접근할 수 있게 제공하고 있습니다. 여기에서는 이러한 부분이 C#에 제공하지 않는다는 관점에서 반복자 패턴을 표현해 보려고 합니다. 반복자 패턴에 대한 설명을 위한 예제 프로그램은 추상화 컬렉션을 파생받은 배열 형식에 대한 정의와 반복자를 파생받은 배열 반복자를 정의한 것이 맞게 작성된 것인지를 확인하는 예광탄으로 하겠습니다. 추상화 된 컬렉션에는 개체를 보관하거나 삭제할 수 있고 전체를 제거하거나 보관된 개체를 얻어올..

[C#] 반복자 패턴(Iterator Pattern) - 개요, 시나리오

18. 반복자 패턴(Iterator Pattern) 18.1 개요 프로그램을 하다 보면 개체들을 보관하는 컬렉션 개체를 사용하는 것은 매우 흔한 일입니다. 그리고, 컬렉션의 안전성을 유지하기 위해서는 개체를 보관하는 공간을 직접적으로 노출시키지 않게 됩니다. 하지만 사용자의 경우 컬렉션에 보관된 개체들의 정보를 검색할 수 있어야 하며 경우에 따라서는 보관된 개체들에 대해 반복된 작업을 수행하기를 원하는 경우가 있습니다. 반복자 패턴은 컬렉션 개체의 내부 저장 공간에 대해 직접적으로 노출하는 것을 막으면서 보관된 개체들에 대해 반복된 작업을 수행할 수 있는 방법을 제공하고자 할 때 사용하는 패턴입니다. 반복자 패턴에서는 컬렉션을 반복 순회하면서 작업을 수행할 필요가 있을 때 순회할 수 있는 도구 개체를 정..

[소프트웨어 설계 패턴 C#] 18. 반복자 패턴(Iterator Pattern)

18. 반복자 패턴(Iterator Pattern) 프로그램을 하다 보면 개체들을 보관하는 컬렉션 개체를 사용하는 것은 매우 흔한 일입니다. 그리고, 컬렉션의 안전성을 유지하기 위해서는 개체를 보관하는 공간을 직접적으로 노출시키지 않게 됩니다. 하지만 사용자의 경우 컬렉션에 보관된 개체들의 정보를 검색할 수 있어야 하며 경우에 따라서는 보관된 개체들에 대해 반복된 작업을 수행하기를 원하는 경우가 있습니다. 반복자 패턴은 컬렉션 개체의 내부 저장 공간에 대해 직접적으로 노출하는 것을 막으면서 보관된 개체들에 대해 반복된 작업을 수행할 수 있는 방법을 제공하고자 할 때 사용하는 패턴입니다. 반복자 패턴에서는 컬렉션을 반복 순회하면서 작업을 수행할 필요가 있을 때 순회할 수 있는 도구 개체를 정의합니다. 그리..

반응형