추상화
어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법
두 차원에서 이뤄지는 추상화
추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것임.
추상화는 의도된 목적으로 사용되어야함.
- 구체적인 사물들 간의 공통점은 취하고 차이점을 버리는 일반화를 통해 단순화
- 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로 단순화
추상화의 두 차원을 올바르게 이해하고 적용해야함.
개념(concept)
- 공통점을 기반으로 객체들을 묶기 위한 그릇
- ex) 길 거리를 빠르게 이동하는 교통수단 - 자동차
- 객체란 특정한 개념을 적용할 수 있는 구체적인 사물을 의미함.
- 개념이 객체에 적용됐을 때 객체를 개념의 인스턴스라고 부름.
- 개념은 객체를 분류할 수 있는 틀을 제공함.
개념의 세 가지 관점
- 심볼(symbol) : 개념을 가리키는 간략한 이름이나 명칭
- 내연(intension) : 개념의 완전한 정의를 나타내며 내연의 의미를 이용해 객체가 개념에 속하는지 여부를 확인할 수 있음.
- 내연은 개념의 의미를 나타냄. 즉, 객체에 대한 설명임.
- ex) 몸이 납작하고 두 손과 두 발은 네모 귀퉁이에 달려있는 등장인물
- 외연(extension) : 개념에 속하는 모든 객체의 집합(set)
객체를 분류하기 위한 틀
- 분류란 특정한 객체를 특정한 개념의 객체 집합에 포함시키거나 포함시키지 않는 작업을 의미함.
- 어떤 객체를 어떤 개념으로 분류할지가 객체지향의 품질을 결정함.
분류는 추상화를 위한 도구다
- 개념을 통해 객체를 분류하는 과정은 추상화의 두 가지 차원을 모두 사용한다.
- 개념을 통하여 첫 번째 차원, 내연을 통하여 두 번째 차원