2008. 7. 22. 20:45

2장 미션임파서블 - 객체지향을 이해하라.

구조적 방법론에서는 작은 단위로 나누어서 해결하는 '나누어서 정복한다(divide and conquer)' 모토로 운영이 된다. 하지만 객체지향 방법론에서의 문제 해결은 추상화(abstraction), 캡슐화(encapsulation), 모듈성(modularity), 계층성(hierarchy)이라는 4가지 개념으로 요약할 수 있다.
객체지향 방법론이 구조적 방법론과 배타적인 개념을 강조하는 것이 아니라 구조적 방법론의 장점을 포함하는 것이다.

추상화는 보다 중요하고 필수적인 사항을 다루려고 하는 것이며 이때 중요한 것은 무엇이 중요한지, 무엇이 덜 중요한 것인지를 직관적으로 판단할 수 있어야 한다는 것이다.
캡슐화는 말 그대로 중요하고 세부적인 구현 방법에 대한 자세한 사항을 캡슐 안에 꼭꼭 숨겨놓는 것이다.
캡슐화는 데이터 감추기(data hiding)라고도 한다.
모듈성이란 크고 복잡한 것을 좀 더 작고 관리할 수 있는 조각으로 나누어, 이들 조각을 독립적으로 개발할 수 있게 하는 것이다. 객체로 명명한다.
계층성이란 보편적인 것을 상위에 두고 특수한 것을 하위에 두는 것을 말한다. 등급이나 순서에 따라 계층적인 구조로 조각들을 배열하는 것을 말한다.

객체란 애플리케이션에서 명확한 한계와 의미를 갖는 사물이나 개념 또는 추상화로서, 특성과 행위 그리고 정체성을 하나의 단위로 포함하여 캡슐화하는 것을 말한다.
특성 : 해당 객체에 저장되어 있는 정보
행위 : 해당 객체가 행동하거나 반응하는 방법을 결정
정체성 : 해당 객체를 다른 객체와 구별 짓게 하는 식별 값