반응형
확장 메서드를 이용하면 인터페이스에 새로운 동작을 추가할 수 있다. 인터페이스에는 가능한 최소한의 기능만을 정의하고 확장 메서드를 세트로 함께 구현하면 손쉽게 기능을 확장할 수 있다. 특히 API를 추가적으로 정의하지 않고도 새로운 기능을 추가할 수 있다.
확장메서드(Extention Method)
정적 클래스에 속해 있는 정적 메서드로 해당 클래스의 인스턴스가 마치 자신의 멤버인 것처럼 사용할 수 있다. C#에서는 확장 메서드를 정의할 때 정적 클래스에 정적메서드로 작성하고 첫번째 매개변수에 this키워드를 사용하여 어떤 형식에 대한 확장 메서드인지 나타낸다.
ex) System.Linq.Enumerable클래스에는 IEnumerable<T>에대해 정의된 50개 이상의 확장메서드(Where,Orderby,ThenBy,GroupInfo등)가 포함되어있다.
확장메서드 자세히 알아보러 가기
결론
인터페이스를 정의하는 경우 인터페이스 내에 정의하는 멤버의 수를 최소한으로 하기 위해 노력해야한다. 그러면 인터페이스를 구현할 때 작성해야 하는 코드의 양을 줄일 수 있고 확장 메서드를 통해 풍부한 기능을 제공할 수 있다.
본 게시글은 Effective C#을 읽고 정리하였습니다.
반응형
'책 > Effective C#' 카테고리의 다른 글
Effective C# - Item 29 컬렉션을 반환하기보다 이터레이터를 반환하는 것이 낫다 (0) | 2024.02.02 |
---|---|
Effective C# - Item 28 확장 메서드를 이용하여 구체화된 제네릭 타입을 개선하라 (0) | 2024.01.20 |
Effective C# - Item 26 제네릭 인터페이스와 논제네릭 인터페이스를 함께 구현하라 (0) | 2023.12.20 |
Effective C# - Item 25 타입 매개변수로 인스턴스 필드를 만들 필요가 없다면 제네릭 메서드를 정의하라 (0) | 2023.12.18 |
Effective C# - Item 24 베이스 클래스나 인터페이스에 대해서 제네릭을 특화하지말라 (1) | 2023.12.18 |
댓글