
객체지향의 목표는 현실 세계를 모방하는 것이 아니라, 객체들의 협력을 통해 새로운 세계를 창조하는 것입니다.
객체는 자율적인 존재로, 메시지를 주고받으며 협력합니다.
역할(Role), 책임(Responsibility), 협력(Collaboration)은 객체지향 설계의 핵심 개념입니다.
역할은 객체가 시스템 내에서 수행하는 기능을 의미하며, 책임은 그 역할을 수행하기 위해 객체가 해야 할 일을 뜻합니다.
협력은 객체들이 메시지를 주고받으며 함께 문제를 해결하는 과정입니다.
객체는 상태(state), 행동(behavior), 식별자(identity)를 지닌 실체입니다.
상태는 객체가 가지고 있는 데이터이며, 행동은 상태를 변경하거나 정보를 제공하는 기능입니다.
식별자는 객체를 유일하게 구분할 수 있는 속성으로, 상태와 무관하게 객체를 식별할 수 있게 합니다.
객체는 자율적으로 상태를 관리하며, 행동을 통해 상태를 변경합니다.
타입(Type)은 객체의 행동을 정의하는 계약으로, 객체가 수행할 수 있는 메시지의 집합입니다.
추상화(Abstraction)는 객체의 내부 구현을 숨기고, 외부에는 필요한 행동만을 노출하는 원칙입니다.
클래스는 객체의 구현을 위한 수단일 뿐이며, 객체지향의 본질은 객체 간의 협력에 있습니다.
역할은 객체가 시스템 내에서 수행하는 기능을 의미하며, 책임은 그 역할을 수행하기 위해 객체가 해야 할 일을 뜻합니다.
협력은 객체들이 메시지를 주고받으며 함께 문제를 해결하는 과정입니다.
역할을 유연한 설계를 가능하게 하며, 객체 간의 결합도를 낮추어 재사용성과 유지보수성을 높입니다.
책임은 객체가 수행해야 할 행동의 집합입니다.
메시지는 객체 간의 의사소통 수단으로, 객체는 메시지를 통해 책임을 수행합니다.
메시지를 중심으로 설계하면 객체의 자율성과 응집도를 높일 수 있습니다.
객체 지도는 시스템을 구성하는 객체들과 그들의 협력 관계를 시각화한 것입니다.
객체 지도를 통해 시스템의 구조를 이해하고, 변경에 유연한 설계를 할 수 있습니다.
객체 지도는 객체 간의 책임과 협력을 명확히 하여 설계의 품질을 높입니다.
지금까지의 내용을 종합하여, 객체지향 설계의 핵심은 역할, 책임, 협력을 중심으로 한 객체들의 협력입니다.
객체지향은 클래스가 아닌 객체를 중심으로 사고해야 하며, 메시지를 통해 협력하는 구조를 설계해야 합니다.
객체지향 설계는 객체 간의 협력을 통해 시스템의 요구사항을 충족시키는 것을 목표로 합니다.
『객체지향의 사실과 오해』는 객체지향 프로그래밍(OOP)의 핵심 개념을 깊이 있게 탐구하며, 개발자들에게 객체지향의 본질을 이해하도록 돕는 책입니다. 이 책은 단순한 문법이나 디자인 패턴을 넘어, 객체지향의 철학과 설계 원칙을 강조합니다.