ITEM 26 :: EFFECTIVE C#


안녕하세요, 26번째 시간입니다.


이번 챕터는 제네릭 인터페이스와 논제네릭 인터페이스를 함께 구현하라, 입니다. 사실 이 부분은 기술적인 것도 있지만 이전의 버전을 지원하는 개념의 내용이라고 봐도 무방할 것 같습니다. 짧고 간결하게 갑니다!

설명

제네릭 인터페이스의 경우 최신의 기술에 가깝지만, 제네릭 인터페이스만을 지원하게되면 이전의 프로그램들에서는 사용이 불가한 경우도 분명히 존재한다. 그런 경우에는 논제네릭 인터페이스를 함께 구현함으로써 이전의 기술들을 지원하고 유틸리티적인 성격을 높이는 것이다.

그렇다고 한다면, 즉, 제네릭 타입이 아닌 방식도 지원하겠다고 결정했다면, 3가지를 지원하면 된다.

순서대로, 클래스와 인터페이스(1), public 속성(2), serialize(3) 대상이 되는 요소 세가지에 대해서 논 제네릭 방식을 지원해야한다. 물론 대부분의 경우, 논제네릭 인터페이스를 추가하는 작업은 적절한 원형의 메서드를 추가하는 수준에서 간단히 해결된다. (아닌 경우는 서로간의 상속관계에 속해있을 경우에 발생한다고 책에 적혀있다.)

논제네릭 인터페이스를 구현할 때는 반드시 명시적인 방법으로 구현하는 것이 좋다. 그래야 개발자가 실수로 잘못 사용할 가능성을 미연에 방지할 수 있다.