본문 바로가기

전체 글

(84)
객체지향의 사실과 오해 - Chapter 5 책임과 메시지 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈이 어떻게 커뮤니케이션하는가 명확한 책임과 역할을 지닌 참가자들이 협력에 참여해야 한다는 것 → 부여받지 않은 책임을 기대하기 어려움 자율적인 책임 자율성→ 자기 스스로의 원칙에 따라 어떤 일을 하거나 자신을 통제해서 절제하는 성질이나 특성 타율성→ 자신의 의지와 관계없이 정해진 규율이나 원칙에 따라서만 움직이는 성질 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 함 객체지향의 아름다움이란 적절한 객체에게 적절한 책임을 할당하는 것 책임-주도 설계: 적절한 책임의 선택이 전체 설계의 방향을 결정하기 때문 협력의 의도를 명확하게 표현하지 못할 정도로 추상적인 것 역시 ..
객체지향의 사실과 오해 - Chapter 4 역할, 책임, 협력 인간은 이기적이고 합리적인 존재 → 그러나 관계를 맺는 과정 속에서 인간은 본연의 특성을 배제하고 자신의 이익을 최소화 → 어떤 상황에 처해 있느냐가 인간의 행동을 결정한다. → 인간의 행동을 결정하는 문맥은 타인과의 협력 협력에 초점을 맞춰 애플리케이션을 설계함 → 협력에 무시하는 오만한 객체를 창조X → 조화를 이루며 적극적으로 상호작용하는 협력적인 객체를 창조 협력 협력은 한 사람이 다른 사람에게 도움을 요청할 때 시작된다. 재판 속의 협력 → 재판을 하기 위해, 왕, 토끼, 증인이 협력함 요청과 응답→ 협력에 참여하는 객체가 수행할 책임 책임 어떤 요청에 대해 대답해줄 수 있거나, 적절한 행동을 할 의무가 있는 경우, 해당 객체가 책임을 가진다고 함 객체지향 개발에서 가장 중요한 능력은 책임을 능..
객체지향의 사실과 오해 - Chapter 3 타입과 추상화 추상화를 통해 타입을 만듬 추상화의 예: 지하철 노선도 ( 목적에 집중하여 필요없는 부분들 삭제) 현상은 복잡하고, 법칙은 단순함 명확하게 이해하기 위해 특정절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 → 구체적인 사물들 간의 공통점은 취하고, 차이점은 버리는 일반화를 통해 단순화 → 불필요한 세부사항 제거 → 객체라는 추상화를 통해 현실의 복잡성을 극복 그룹으로 단순화하기 → 공통점으로 묶기 : 사람은 본능적으로 공통적인 특성으로 객체들을 여러 그룹으로 묶어 동시에 다뤄야하는 가짓수를 줄여버림 세상에 존재하는 등장인물들을 트럼와 토끼로 나누어서 복잡성을 감소시킴세상에 존재하는 등장인물들을 트럼와 토끼로 나누어서 복잡성을 감소시킴 분류(Classification)을 통해 clas..