ITEM 28 :: EFFECTIVE C#


안녕하세요, 28번째 시간입니다. 이것으로 벌써 3장, 제네릭 편도 끝이 나네요.


이번 챕터는 확장 메서드를 이용하여 구체화된 제네릭 타입을 개선하라, 입니다. 저번편의 기능을 추가할 때는 확장 메서드를 사용하라고 한 내용과 어느정도 이어지는 부분이라 길지는 않습니다. 제네릭 편의 마지막 내용인데, 제네릭이라는 것이 상당히 어려웠던 터라 제게는 나중에 다시 한번 봐야될 이유가 된 것 같습니다.

설명

  1. 이미 구체화된 제네릭 컬렉션을 사용하는 경우는 꽤 많다. (List,Dictionary … etc)

  2. 이 때 제네릭 타입에 해당하는 어떠한 기능을 원할 때, 이미 구현된 컬렉션 클래스에 메서드를 추가할 수는 없고 막막할 때가 있을 것이다. 그 때, 확장메서드를 이용하여 특정 제네릭 타입을 개선하면 해당 제네릭 타입을 사용할 때 더욱 효율좋게 사용할 수 있다.

  3. 이는 작성중인 응용프로그램이나 라이브러리의 객체 모델을 다시 한 번 살펴볼 좋은 이유가 되는데, 즉, 컬렉션을 사용하는 경우, 구체화된 제네릭 타입을 살펴보고 어떤 메서드가 추가되어야 하는지 재검토하면 좋다.

  4. 구체화된 제네릭 타입을 상속하여 메서드를 상속하는 방법도 있으나, 이는 잘못 상속의 예가 될 수도 있으므로, 이보다는 확장 메서드로 구현하는 것이 훨씬 낫다.

  5. 또한 이러한 방식으로 코드를 작성하게 되면, 단순한 기능을 제공하는 메서드를 다양하게 재사용할 수 있다.

  6. 또한 컬렉션 고유의 저장소 모델과 무관하게 기능을 구현할 수 있게 된다!