[JAVA] 객체지향의 사실과 오해 03 정리

2024-10-17

image.png

💡 Highlight

  • 객체의 타입을 결정하는 것은 객체의 행동뿐이다.

추상화를 통한 복잡성 극복

  • 진정한 의미에서 추상화란 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러나게 하는 과정이라고 할 수 있다.
  • 객체의 내부 표현 방식이 다르더라도 어떤 객체들이 동일하게 행동한다면 그 객체들은 동일한 타입에 속한다.
  • 객체의 타입을 결정하는 것은 객체의 행동뿐이다. 객체가 어떤 데이터를 보유하고 있는지는 타입을 결정하는 데 아무런 영향도 미치지 않는다.

타입의 계층

  • 슈퍼타입(Supertype) : 좀 더 일반적인 타입
  • 서브타입(Subtype) : 좀 더 특수한 타입

정적 모델

  • 타입을 이용하면 객체의 동적인 특성을 추상화할 수 있다.
  • 스냅샷(snapshot) : 객체가 특정 시점에 구체적으로 어떤 상태를 가지는 것. UML에서 스냅샷은 객체 다이어그램이라고도 불린다.
  • 동적 모델(dynamic model) : 스냅샷처럼 실제로 객체가 살아 움직이는 동안 상태가 어떻게 변하고 어떻게 행동하는지를 포착하는 것
  • 타입 모델(type diagram) : 객체가 가질 수 있는 모든 상태와 모든 행동을 시간에 독립적으로 표현하는 것
  • 정적 모델(static model) : 타입 모델처럼 객체가 속한 타입의 정적인 모습을 표현하는 것