[c#] C# 이터레이터 디자인 패턴
C# 프로그래밍에서 이터레이터 디자인 패턴은 컬렉션의 요소를 순회하면서 접근하는 데 유용한 패턴입니다. 이 패턴을 사용하면 컬렉션 내부 구현에 대한 상세 정보를 감추고, 클라이언트 코드가 간편하게 요소에 접근할 수 있습니다.
이터레이터 디자인 패턴의 구조
이터레이터 디자인 패턴은 “반복자”와 “집합체” 두 가지 요소로 구성됩니다.
- 반복자 (Iterator) : 집합체의 요소에 접근하기 위한 인터페이스를 정의합니다.
- 집합체 (Aggregate) : 요소 컬렉션을 생성하고, 해당 컬렉션에 대한 반복자 인스턴스를 제공합니다.
C#에서의 이터레이터 구현
C#에서는 이터레이터를 구현하기 위해 yield
키워드를 사용합니다.
public class MyCollection
{
private List<int> _items = new List<int>();
public IEnumerator<int> GetEnumerator()
{
foreach (var item in _items)
{
yield return item;
}
}
}
위의 예시에서 GetEnumerator
메서드 내부에서 yield return
을 사용하여 각 요소를 반환합니다.
이터레이터 디자인 패턴의 장점
- 분리된 인터페이스 : 이터레이터를 통해 컬렉션의 구현과 순회 논리를 분리할 수 있습니다.
- 클라이언트 코드의 단순화 : 컬렉션에 집중하여 작성된 클라이언트 코드를 보다 간결하게 만들 수 있습니다.
이처럼 C#에서의 이터레이터 디자인 패턴은 컬렉션의 순회 및 요소에 접근하는 코드의 복잡성을 줄이고, 유연성을 높일 수 있는 강력한 도구입니다.
참고 자료
이상으로 C#에서의 이터레이터 디자인 패턴에 대해 알아보았습니다. 이 패턴은 코드의 유지보수성과 가독성을 향상시키는 데 유용한 패턴이므로, 적절한 상황에서 적용해보는 것이 좋습니다.