객체지향 설계에 대한 미신 -상속 vs. 합성-

* 출처: 웹하드

객체 지향 설계에 대한 미신

 

 불과 10여 년 전만 하더라도 객체 지향 프로그래밍은 많은 이들에게 낯설게만 느껴졌지만(혹시 저만 그랬던가요?) 이제는 C++ JAVA와 같은 객체 지향 언어들이 다수의 소프트웨어 개발자들에게 지지를 받고 있고 최근에 나오는 수많은 개발 방법론들이 대부분 객체 지향을 기반으로 하고 있을 만큼 소프트웨어 업계 전반적으로 객체 지향 기법 및 이론들이 널리 퍼져 있는 것이 현실입니다. 그러나 아직까지 많은 책들과 대학 수업에서 객체 지향에 대해서 시대에 뒤떨어졌거나 심지어는 잘못된(정확히 말하자면 잘못된 생각이었고 이제는 수정되어야 할) 내용들을 언급하거나 가르치고 있는 것이 현실입니다.

 따라서 이번에는 실제적으로 프로젝트에서 합리적인 객체 지향 설계를 위해 우리가 버려야 할 과거의 인습 중 하나에 대해서 언급하고자 합니다.(참고로 이 글은 많은 부분 '알기 쉬운 디자인 패턴(원제 : Design Patterns Explained, Alan shalloway, James R. Trott )' 8장 내용을 토대로 하고 있습니다.)

 

 과거에 잘못 소개된 객체 지향 개념들 중 대표적인 것은 다음과 같습니다.

 1. 상속은 기능의 확장이다.

 2. 객체는 데이터+메소드이다.

 3. 캡슐화는 데이터 은닉이다.


>더보기


칼루
나만의 강의 2006. 3. 9. 12:40
,
Powerd by Tistory, designed by criuce
rss