현대 C# 기법, 1부: Curiously Recurring 제네릭 패턴

Curiously Recurring 제네릭 패턴(줄여서 CRGP)는 이미 알려진 패턴 중의 하나 입니다.

CRGP는 제네릭 인터페이스의 구현에 자기 자신의 제네릭 인자로 사용합니다.

interface IExample<TDerived>
{
}

class MyExample : IExample<MyExample>
{
}

.NET 런타임 라이브러리에서 이런 패턴을 사용하는 많은 인터페이스가 있으며,
또다른 대표적인 사용처가 Fluent 인터페이스 입니다.

C#에서는 더 나아가 기본 인터페이스 메서드 및 정적 인터페이스 메서드에서도 활용할 수 있습니다.


3개의 좋아요