추상화를 통한 복잡성 극복

추상화란 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다.

객체지향과 추상화

그룹으로 나누어 단순화하기

앨리스는 정원사, 병사, 신하, 왕자와 공주, 하객으로 참석한 왕과 왕비들, 하트 잭, 하트 왕과 하트 여왕을 트럼프 와 그 외의 토끼 로 구분하였다. 이처럼 명확한 경계를 가지고 서로 구별할 수 있는 구체적인 사람이나 사물을 객체지향 패러타임에서는 객체라고 한다.

개념

앨리스는 인물들의 차이점을 의도적으로 무시하고 공통점만을 강조함으로써 트럼프 라는 그룹에 속할 수 있는 인물들을 취사선택한 것이다. 앨리스가 인물들의 차이점을 무시하고 공통점만을 취해 트럼프라는 개념으로 단순화한것은 추상화의 일종이다.

객체에 어떤 개념을 적용하는 것이 가능해서 개념 그룹의 일원이 될 때 객체를 그 개념의 인스턴스(Instance) 라고 한다. 개념은 객체를 분류할 수 있는 틀을 제공한다. 앨리스가 수많은 군상들을 단지 트럼프일 뿐이라고 일축했던 것처럼 주변의 복잡한 객체들은 단지 몇 가지 개념의 인스턴스일 뿐이다.

개념의 세 가지 관점

어떤 객체에 어떤 개념이 적용됐다고 할 때는 그 개념이 부가하는 의미를 만족시킴으로써 다른 객체와 함께 해당 개념의 일원이 됐다는 것을 의미한다.

객체를 분류하기 위한 틀

어떤 객체를 어떤 개념으로 분류할지가 객체지향의 품질을 결정한다.

분류는 추상화를 위한 도구다

  1. 구체적인 사물 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순화하는 것
  2. 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거해 단순화하는 것

타입