2010.07.07 08:14 책 정리/Effective C#

포스트를 만든 목적

  • 지하철에서 책 본 것을 정리하려고

관린링크

내용

상속은 무엇이고 interface는 무엇인가?

왜 상속보다 interface가 더 좋은가?

  • 상속관계가 없는 서로 다른 타입도 사용 할 수 있다.

    2번째 PrintCollection() 함수는 ClollectionBase를 상속 받은 녀석만 사용 할 수 있지만, 1번째 PrintCollection() 함수는 IEnumerable 인터페이스로 구현했다면, 어떤 컨테이너든 사용 할 수 있는 장점이 있다.

  • 객체의 외부 접근을 제한하기 쉽다.

    2번째는 DataSet 자체를 전달 시키기 때문에, 러턴 후, 정보 변경 우려가 있으나, 1번째 IListSource의 경우, 내부 내용을 변경 할 수 없다. 왜냐하면, 내부 변경을 위한 인터페이스가 없기 때문이다.

  • unboxing을 피할 수 있다.

    Interface를 구현하게 되면, 구조체가 구현했던 모든 interface들은 box에 의해서 다시 한번 재구현 되는데, 이때 interface를 통해 box 내 구조체에 접근하게 되면, unboxing 없이 사용 될 수 있다.

결론

  • 상속보다 인터페이스가 더 약한 관계를 갖기 때문에, 더 좋다.

여담

  • 박싱이 되나 안되나 알기 위해 Sort() 내부를 봐야 하는데, 못보니까 답답하다.
  • 너무 졸렵다.


저작자 표시
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. Favicon of http://gcland.tistory.com 양군 2012.07.30 21:46 신고  Addr  Edit/Del  Reply

    인터페이스 관련 내용 찾다가 봤는데, 솔직한 여담ㅋㅋㅋㅋ 실소하고 갑니다^-^