ITEM 28 :: EFFECTIVE C#
안녕하세요, 28번째 시간입니다. 이것으로 벌써 3장, 제네릭 편도 끝이 나네요.
이번 챕터는 확장 메서드를 이용하여 구체화된 제네릭 타입을 개선하라, 입니다. 저번편의 기능을 추가할 때는 확장 메서드를 사용하라고 한 내용과 어느정도 이어지는 부분이라 길지는 않습니다. 제네릭 편의 마지막 내용인데, 제네릭이라는 것이 상당히 어려웠던 터라 제게는 나중에 다시 한번 봐야될 이유가 된 것 같습니다.
설명
-
이미 구체화된 제네릭 컬렉션을 사용하는 경우는 꽤 많다. (List,Dictionary … etc)
-
이 때 제네릭 타입에 해당하는 어떠한 기능을 원할 때, 이미 구현된 컬렉션 클래스에 메서드를 추가할 수는 없고 막막할 때가 있을 것이다. 그 때, 확장메서드를 이용하여 특정 제네릭 타입을 개선하면 해당 제네릭 타입을 사용할 때 더욱 효율좋게 사용할 수 있다.
-
이는 작성중인 응용프로그램이나 라이브러리의 객체 모델을 다시 한 번 살펴볼 좋은 이유가 되는데, 즉, 컬렉션을 사용하는 경우, 구체화된 제네릭 타입을 살펴보고 어떤 메서드가 추가되어야 하는지 재검토하면 좋다.
-
구체화된 제네릭 타입을 상속하여 메서드를 상속하는 방법도 있으나, 이는 잘못 상속의 예가 될 수도 있으므로, 이보다는 확장 메서드로 구현하는 것이 훨씬 낫다.
-
또한 이러한 방식으로 코드를 작성하게 되면, 단순한 기능을 제공하는 메서드를 다양하게 재사용할 수 있다.
-
또한 컬렉션 고유의 저장소 모델과 무관하게 기능을 구현할 수 있게 된다!