Book/『 객체지향의 사실과 오해 』 4

"객체지향의 사실과 오해" 객체의 식별자

1. 값 객체(Value Object)값 객체는 그 속성 값 자체에 의미를 두는 객체이다. 동일한 속성 값을 가지면 동일한 객체로 취급되며 주로 불변성을 가진다. 값 객체는 주로 숫자, 좌표, 날짜와 같은 간단한 데이터를 표현하는 데 사용된다. 예를 들어, (x=1, y=2)라는 좌표를 나타내는 객체가 두 개 있을 때 이 두 객체는 속성 값이 같기 때문에 동일한 것으로 간주된다. 2. 참조 객체(Reference Object) 또는 엔티티(Entity)참조 객체는 값 그 자체보다 고유한 식별자를 통해 구분되는 객체이다. 동일한 속성 값을 가지더라도 객체 자체가 다르다면 서로 다른 객체로 취급된다. 이러한 객체를 엔티티(Entity)라고도 부른다.참조 객체는 일반적으로 상태가 변할 수 있는 가변성(muta..

"객체지향의 사실과 오해" 객체의 상태와 행동

객체 지향 프로그래밍의 중심에는 객체의 상태와 행동이 있다. 이번 블로그에서는 객체의 상태와 행동이 무엇이며 어떻게 서로 상호작용하는지 알아보겠다.상태객체의 프로퍼티와 프로퍼티 값: 객체는 프로퍼티(속성)와 그에 해당하는 프로퍼티 값으로 구성된다. 이러한 프로퍼티들은 객체의 현재 상태를 나타낸다.프로퍼티의 두 가지 구성: 단순 값 속성과 다른 객체와의 링크: 객체의 프로퍼티는 두 가지 형태로 이루어져 있다. 첫째는 숫자나 문자열과 같은 단순한 값 속성이다. 둘째는 다른 객체와 연결된 링크이다. 이 두 가지 조합을 통해 객체는 복잡한 데이터 구조를 형성할 수 있다. 행동객체의 행동은 상태에 영향을 받는다: 객체가 수행하는 행동은 현재의 상태에 따라 달라진다. 예를 들어, 문이 잠겨 있는 상태에서는 '열기'..

"객체지향의 사실과 오해" 역할, 책임, 협력의 중요성과 클래스와 객체의 오해

1. 역할, 책임, 협력의 중요성책에서는 역할, 책임, 협력이 객체지향 설계의 핵심이라고 강조한다. 이는 소프트웨어뿐만 아니라 실세계에서도 여러 사람들이 서로의 역할과 책임을 바탕으로 협력하여 목표를 달성하는 것과 같다.협력의 핵심은 특정한 책임을 수행하는 객체들 간의 연쇄적인 요청과 응답을 통해 목표를 달성하는 것이다. 객체지향 설계에서는 한 기능을 더 작은 책임으로 분할하고, 그 책임은 적절한 역할을 수행할 수 있는 객체에 의해 수행된다. 책임이 불분명한 객체는 잘 분할되지 않은 기능을 나타낸다.2. 객체의 세 가지 필수 요소객체지향의 아름다움을 결정하는 것이 협력이라면 협력이 얼마나 조화를 이루는지 결정하는 것은 객체이다. 객체는 다음 세 가지를 갖춰야 한다.요청에 적절한 응답자율성을 가지기 -> ..

"객체지향의 사실과 오해" 새로운 세상을 창조하는 객체지향의 진정한 목적

요즘에 읽고 있는 객체지향의 사실과 오해에서 중요한 부분을 정리해보았다. 오늘 읽은 첫 파트가 객체지향에 대한 오해와 진정한 목표에 대해 깊이 생각하게 된 내용이었다.1. 객체지향과 실세계의 모방많은 사람들이 "객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임"이라는 개념을 떠올리곤 하는데 이는 철학적으로는 타당한 설명일 수 있지만 유연하고 실용적인 관점에서 객체지향 분석과 설계를 설명하는 데는 적합하지 않다.실제로 객체지향은 실세계를 모방하는 것이 목표가 아니라, 새로운 세상을 창조하는 것이 목표다. 이 점이 매우 흥미롭게 다가왔고, 프로그램을 설계할 때 실세계를 그대로 모사하려는 접근보다는 문제를 해결하기 위한 최적의 설계와 창조적 사고가 필요하다는 뜻으로 받아들였다.책에서는 실세..