본문 바로가기

객체지향5

05. 책임과 메시지 책임과 메시지 자율적인 책임 설계의 품질을 좌우하는 책임 자율적인 객체란 스스로의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미한다. '어떻게'가 아니라 '무엇'을 자율적인 책임의 특징은 객체가 '어떻게(how)' 해야 하는가가 아니라 '무엇(what)'을 해야 하는가를 설명한다는 것이다. 책임을 자극하는 메시지 책임이라는 말 속에는 어떤 행동을 수행한다는 의미가 포함돼 있다. 객체가 자신에게 할당된 책임을 수행하도록 만드는 것은 외부에서 전달되는 요청이다. 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 요청을 전송하는 것뿐이다. 그리고 이 요청을 우리는 메시지라고 부른다. 메시지는 객체로 하여금 자신의 책임, 즉 행동을 수행하게 만드.. 2020. 10. 7.
04. 역할, 책임, 협력 역할, 책임, 협력 협력 협력은 다수의 요청과 응답으로 구성되며 전체적으로 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다. 책임 어떤 대상에 대한 요청은 그 대상이 요청을 처리할 책임이 있음을 암시한다. 객체지향 설계의 예술은 적절한 객체에게 적절한 책임을 할당하는 데 있다. 명확한 책임이 애플리케이션의 미래를 결정짓는다는 것을 명심하라. 객체지향 설계는 협력에 참여하기 위해 어떤 객체가 어떤 책임을 수행해야 하고 어떤 객체로부터 메시지를 수신할 것인지를 결정하는 것으로부터 시작된다. 역할 역할의 가장 큰 가치는 하나의 협력 안에 여러 종류의 객체가 참여할 수 있게 함으로써 협력을 추상화 할 수 있다는 것이다. 역할의 대체 가능성은 행위 호환성을 의미하고, 행위 호환성은 동일한 책임의 수행을 의.. 2020. 10. 7.
03. 타입과 추상화 타입과 추상화 추상화를 통한 복잡성 극복 추상화의 목적은 불필요한 부분을 무시함으로써 현실에 존재하는 복잡성을 극복하는 것이다. 이 책에서는 추상화를 다음과 같이 정의한다. 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이뤄진다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순호하는 것이라는 점을 기억하라. 타입 1. 타입은 개념이다.. 2020. 10. 7.
02. 이상한 나라의 객체 이상한 나라의 객체 객체지향과 인지 능력 객체지향 패러다임의 목적은 현실 세계를 모방하는 것이 아니라 현실 세계를 기반으로 새로운 세계를 창조하는 것이다. 객체, 그리고 소프트웨어 나라 객체의 다양한 특성을 효과적으로 설명하기 위해서는 객체를 상태(state), 행동(behavior), 식별자(identity)를 지닌 실체로 보는 것이 가장 효과적이다 상태 왜 상태가 필요한가? 상태를 이용하면 과거의 모든 행동 이력을 설명하지 않고도 행동의 결과를 쉽게 예측하고 설명할 수 있다. 상태를 이용하면 과거에 얽매이지 않고 현재를 기반으로 객체의 행동 방식을 이해할 수 있다. 상태는 근본적으로 세상의 복잡성을 완화하고 인지 과부하를 줄일 수 있는 중요한 개념이다. 상태와 프로퍼티 모든 객체의 상태는 단순한 값과.. 2020. 10. 7.