728x90
새로운 라이브러리를 개발할 때 제네릭 타입뿐 아니라 고전적인 방식도 함께 지원하면 라이브러리의 활용도를 높일 수 있다.
제네릭 타입이 아닌 방식을 지원한다면, 다음 3가지에 대해 논제네릭 방식을 지원해야 한다.
- 클래스와 인터페이스
- public 속성
- serialize 대상이 되는 요소
논제네릭 방식을 지원해야 하는 이유
제네릭은 서로 다른 타입 간에 동일성을 비교하는 기능을 잘하지 못한다.
또한 단일 컬렉션 내에 다른 타입 객체를 저장해야 하는 경우에도 제네릭은 도움이 되지 않는다.
제네릭 방식에 논제네릭 방식 추가
상속 관계를 제외한 대부분의 경우 논제네릭 인터페이스를 추가하는 작업은 적절한 원형의 메서드를 추가하는 수준에서 해결된다.
논제네릭 인터페이스를 구현할 때, 개발자의 실수를 방지하기 위해 명시적인 방법으로 구현하는 것이 좋다.
반응형
'개발공부 > C#' 카테고리의 다른 글
[Effective C#] 아이템 28 : 확장 메서드를 이용하여 구체화된 제네릭 타입을 개선하라 (0) | 2021.12.04 |
---|---|
[Effective C#] 아이템 27 : 인터페이스는 간략히 정의하고 기능의 확장은 확장 메서드를 사용하라 (0) | 2021.12.03 |
[Effective C#] 아이템 25 : 타입 매개변수로 인스턴스 필드를 만들 필요가 없다면 제네릭 메서드를 정의하라 (0) | 2021.12.01 |
[Effective C#] 아이템 24 : 베이스 클래스나 인터페이스에 대해서 제네릭을 특화하지 말라 (0) | 2021.11.30 |
[Effective C#] 아이템 23 : 타입 매개변수에 대해 메서드 제약 조건을 설정하려면 델리게이트를 활용하라 (0) | 2021.11.29 |