콘텐츠로 이동

2021 02 06

2021-02-06

객체지향의 사실과 오해

  • 01. 협력하는 객체들의 공동체 - 시스템은 역할과 책임을 수행하는 객체로 분할 - 시스템의 기능은 객체 간의 연쇄적인 요청과 응답의 흐름으로 구성된 협력으로 구현 - 객체는 "협력적" + "자율적" - 객체지향에서는 데이터(상태)와 프로세스(행위)를 객체라는 하나의 틀 안에 함께 묶어 놓음으로써 객체의 자율성을 보장 - 어떤 클래스가 필요한가 X -> 어떤 객체들이 어떤 메시지를 주고 받으며 협력하는가 - 객체의 [역할], [책임], [협력]에 집중할 것!
  • 02. 이상한 나라의 객체 - 객체를 상태 - 행동 - 식별자를 지닌 실체로 볼 것 - 상태(외부 노출 X): 단순한 값(속성) + 객체의 조합(링크) - 행동(외부 노출 O): 자신의 상태를 변경 + 다른 객체에게 메시지 전달 - 훌륭한 객체 생성은 초점을 "행동" 에 맞추는 것 - 객체지향 세계의 객체가 현실 속의 객체보다 더 많은 특징과 능력 보유 - 행동이 상태를 결정한다!
  • 03. 타입과 추상화 - 추상화: 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 - 구체적인 사물들 간 공통점을 취하고, 차이점은 버리는 일반화 - 중요한 부분 강조 위해 불필요한 세부 사항 제거 - 다형성: 동일한 요청에 대해 서로 다른 방식으로 응답할 수 있는 능력 - 캡슐화: 외부에 행동만을 제공, 데이터는 행동 뒤로 감출 것 - 행동이 객체를 결정한다!