📗 BOOK/객체지향의 사실과 오해 7

객체지향의 사실과 오해 부록A 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 추상화 기법 분류와 인스턴스화: 분류는 객체의 구체적인 세부 사항을 숨기고 인스턴스 간에 공유하는 공통적인 특성을 기반으로 범주를 형성하는 과정, 분류의 역은 범주로부터 객체를 생성하는 인스턴스화 일반화와 특수화: 일반화는 범주 사이의 차이를 숨기고 범주 간에 공유하는 공통적인 특성 강조, 일반화의 역은 특수화 집합과 분해: 집합은 부분과 관련된 세부 사항을 숨기고 부분을 사용해서 전체를 형성하는 과정, 집합의 반대 과정은 전체를 부분으로 분리하는 분해 과정 개념과 범주 객체를 분류하고 범주로 묶는 것은 공통의 개념을 적용하는 것을 의미한다. 세상에 존재하는 객체에 개념을 적용하는 과정을 ..

객체지향의 사실과 오해 7장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. ​ 개념 관점: 설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현한다. 명세 관점: 인터페이스와 구현을 분리해야 한다. 구현 관점: 객체들이 책임을 수행하는 데 필요한 동작하는 코드를 작성하는 것이다. 포함 관계 또는 합성 관계: 예시) 메뉴판 타입과 메뉴 항목 타입 간의 관계 연관 관계: 한 타입의 인스턴스가 다른 타입의 인스턴스를 포함하지는 않지만, 서로 알고 있어야 할 경우 도메인 모델: 소프트웨어가 대상으로 하는 영역인 도메인을 단순화해서 표현한 모델 인터페이스 정리하기 객체가 수신한 메시지가 객체의 인터페이스를 결정한다. 객체가 어떤 메시지를 수신할 수 있다는 것은 그..

객체지향의 사실과 오해 5장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 자율적인 책임 적절한 책임이 자율적인 객체를 낳고, 자율적인 객체들이 모여 유연하고 단순한 협력을 낳는다. 객체가 자율적이기 위해서는 객체에게 할당하는 책임의 수준 역시 자율적이어야 함. 너무 추상적인 책임 책임은 협력에 참여하는 의도를 명확하게 설명할 수 있는 수준 안에서 추상적이어야 한다. 어떻게가 아니라 무엇을 자율적인 책임의 특징은 어떻게 해야 하는가가 아니라 무엇을 해야 하는가를 설명한다는 것. 메시지 하나의 객체는 메시지를 전송함으써 다른 객체에 접근한다. 메시지: 메시지 이름, 인자의 조합 메시지 전송: 수신자, 메시지 이름, 인자의 조합 객체가 제공하는 메시지는 외부의 다른 ..

객체지향의 사실과 오해 4장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 객체지향 설계의 전체적인 품질을 결정하는 것은 개별 객체의 품질이 아니라 여러 객체들이 모여 이뤄내는 협력의 품질이다. 협력 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다 책임 어떤 객체가 어떤 요청에 대해 대답해 줄 수 있거나 적절한 행동을 할 의무가 있는 경우 객체가 책임을 가진다고 말한다. 책임의 분류 객체의 책임은 객체가 무엇을 알고 있는가와 무엇을 할 수 있는가로 구성된다. 메시지 전송 : 객체가 다른 객체에게 주어진 책임을 수행하도록 요청을 보내는 것 책임이란 객체가 협력하기 위해 수행하는 행위를 상위 수준에서 개략적으로 서술 -> 책임 결정후 실제 메시지로 변환할 때는..

객체지향의 사실과 오해 - 3장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 1. 추상화를 통한 복잡성 극복 추상화는 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 추상화는 두 차원에서 이뤄진다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고, 차이점은 버리는 일반화를 통해 단순화된다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 2. 그룹으로 나누어 단순화하기 명확한 경계를 가지고 서로 구별할 수 있는 구체적인 사람이나 사물을 객체지향 패러다임에서 객체라고 한다. 3. 개념 객체지향 패러다임의 중심에는 ..

객체지향의 사실과 오해 - 2장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 1. 객체지향과 인지 능력 객체지향 패러다임은 인간이 인지 가능한 다양한 객체들이 모여 현실 세계를 이루는 것처럼 소프트웨어의 세계 역시 인간이 인지할 수 있는 다양한 소프트웨어 객체들이 모여 이뤄져 있다는 믿음에서 출발한다. 객체지향과 현실의 유사성은 여기까지이며, 객체지향 패러다임의 목적은 현실세계를 기반으로 새로운 세계를 창조하는 것이다. 2. 객체 그리고 이상한 나라 이상한 나라의 앨리스 이야기를 차용해서 객체의 특징을 서술하였다. 1. 앨리스는 상태를 가지며 상태는 변경 가능하다. 2. 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다. 행동의 결과는 상태에 의존적이며 상태를 이용..

객체지향의 사실과 오해 - 1장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 1. 협력하는 객체들의 공동체 우리는 객체지향에 처음 다가가면, 객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임이라는 설명을 마주하게 된다. 하지만 실세계의 모방이라는 개념은 객체지향의 기반을 이루는 개념을 설명하는데 적합하지만, 실용적인 관점에서 분석, 설계를 설명하기에는 적합하지 않는다. 객체지향의 목표는 실세계를 모방하는 것이 아니라, 새로운 세계를 창조하는 것이다. 왜 많은 사람들이 실세계 객체와 소프트웨어 객체 간의 대응이라는 유산을 계속해서 재생산하는가? 그건 바로 객체를 상태와 행위를 캡슐화하는 소프트웨어 객체의 자율성을 설명하는데 효과적이기 때문이다. 즉..