개발공부/C#

[Effective C#] 아이템 26 : 제네릭 인터페이스와 논제네릭 인터페이스를 함께 구현하라

개발자 찐빵이 2021. 12. 2. 00:13
728x90

새로운 라이브러리를 개발할 때 제네릭 타입뿐 아니라 고전적인 방식도 함께 지원하면 라이브러리의 활용도를 높일 수 있다.
제네릭 타입이 아닌 방식을 지원한다면, 다음 3가지에 대해 논제네릭 방식을 지원해야 한다.

  1. 클래스와 인터페이스
  2. public 속성
  3. serialize 대상이 되는 요소

논제네릭 방식을 지원해야 하는 이유

제네릭은 서로 다른 타입 간에 동일성을 비교하는 기능을 잘하지 못한다.
또한 단일 컬렉션 내에 다른 타입 객체를 저장해야 하는 경우에도 제네릭은 도움이 되지 않는다.

제네릭 방식에 논제네릭 방식 추가

상속 관계를 제외한 대부분의 경우 논제네릭 인터페이스를 추가하는 작업은 적절한 원형의 메서드를 추가하는 수준에서 해결된다.
논제네릭 인터페이스를 구현할 때, 개발자의 실수를 방지하기 위해 명시적인 방법으로 구현하는 것이 좋다.

반응형