블로그 정리 초안
객체지향의 오해
- 클래스가 객체지향의 핵심이다.
- 클래스는 단지 동적인 객체들의 특성과 행위를 정적인 텍스트로 표현하기 위해 사용할 수 있는 추상화 도구
- 객체지향의 핵심은 적절한 책임을 수행하는 역할 간의 유연하고 견고한 협력 관계를 구축하는 것이다.
- 객체지향은 현실 세계의 모방이다.
- 객체와 현실 사이에 더 알맞은 말은 은유이다.
- ex) 회의록 객체를 만들면, 객체가 스스로 회의록 내용을 채운다. 이건 현실이랑 맞지 않다.
객체
- 식별 가능한 개체 또는 사물이며. 상태와 행동, 식별자를 지닌 실체이다.
- 데이터와 프로세스를 객체라는 하나의 틀에 묶어놓은 것
- 과거에는 데이터와 프로세스를 엄격히 분리하였음
- 객체는 협력적이어야 한다
- 객체는 자율적이어야 한다
상태
- 특정 시점에 객체가 가지고 있는 정보의 집합이다.
- 행동의 과정과 결과를 단순하게 기재하기 위한 것
- 프로퍼티와 프로퍼티 값으로 구분된다.
- 프로퍼티 : 객체의 상태를 구성하는 모든 특징
- 정적임
- ex) “효범”의 싱크패드의 프로퍼티 : 구입일, 가격, 램 크기
- 프로퍼티 값 : 프로퍼티 마다의 값
- 동적임
- ex) 2022/12/12, 180만원, 32기가
- 프로퍼티는 객체를 구성하는 값인 속성과, 다른 객체를 가리키는 링크로 구분한다.
행동
- 외부의 요청 또는 수신된 메시지에 응답하기 위해 동작하고 반응하는 활동이다.
- 행동의 결과로 객체는 자신의 상태를 변경하거나 다른 객체에게 메시지를 전달할 수 있다.
- 객체의 행동은 상태에 영향을 받고 상태를 변경시킬 수 있다.
- 객체는 메시지를 통해서 다른 객체와 의사소통 할 수 있고, 다른 객체는 행동하여 협력에 참여한다.
- 모든 객체의 상태는 캡슐화된다. 한 객체의 행동으로 다른 객체의 상태를 직접적으로 변경시킬 수는 없다. 다른 객체의 행동을 통해 간접적으로 변경되며 상태를 노출하지도 않는다.
- 이는 각 객체의 자율성을 높이고 협력을 단순하고 유연하게 만든다.
식별자