책임과 메시지
자율적인 책임
설계의 품질을 좌우하는 책임
- 자율적인 객체란 스스로의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미한다.
'어떻게'가 아니라 '무엇'을
- 자율적인 책임의 특징은 객체가 '어떻게(how)' 해야 하는가가 아니라 '무엇(what)'을 해야 하는가를 설명한다는 것이다.
책임을 자극하는 메시지
- 책임이라는 말 속에는 어떤 행동을 수행한다는 의미가 포함돼 있다.
- 객체가 자신에게 할당된 책임을 수행하도록 만드는 것은 외부에서 전달되는 요청이다.
- 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 요청을 전송하는 것뿐이다. 그리고 이 요청을 우리는 메시지라고 부른다. 메시지는 객체로 하여금 자신의 책임, 즉 행동을 수행하게 만드는 유일한 방법이다.
메시지와 메서드
메시지
- 메시지는 객체들이 서로 협력하기 위해 사용할 수 있는 유일한 의사소통 수단이다. 객체가 메시지를 수신할 수 있다는 것은 객체가 메시지에 해당하는 책임을 수행할 수 있다는 것을 의미한다. 객체가 유일하게 이해할 수 있는 의사소통 수단은 메시지뿐이며 객체는 메시지를 처리하기 위한 방법을 자율적으로 선택할 수 있다.
- 외부의 객체는 메시지에 관해서만 볼 수 있고 객체 내부는 볼 수 없기 때문에 자연스럽게 객체의 외부와 내부가 분리된다.
메서드
- 메시지는 '어떻게'수행될 것인지는 명시하지 않는다. 메시지는 단지 오퍼레이션을 통해 '무엇'이 실행되기를 바라는지만 명시하며, 어떤 메서드를 선택할 것인지는 전적으로 수신자의 결정에 좌우된다.
다형성
- 다형성이란 서로 다른 유형의 객체가 동일한 메시지에 대해 서로 다르게 반응하는 것을 의미한다.
- 다형성은 하나의 메시지와 하나 이상의 메서드 사이의 관계로 볼 수 있다.
- 서로 다른 객체들이 다형성을 만족시킨다는 것은 객체들이 동일한 책임을 공유한다는 것을 의미한다.
- 송신자의 관점에서 다형적인 수신자들을 구별할 필요가 없으며 자신의 요청을 수행할 책임을 지닌다는 점에서 모두 동일하다.
- 다형성은 송신자와 수신자 간의 객체 타입에 대한 결합도를 메시지에 대한 결합도로 낮춤으로써 달성된다.
유연하고 확장 가능하고 재사용성이 높은 협력의 의미
- 첫째, 협력이 유연해진다.
- 둘째, 협력이 수행되는 방식을 확장할 수 있다.
- 셋째, 협력이 수행되는 방식을 재사용할 수 있다.
송신자와 수신자를 약하게 연결하는 메시지
- 메시지는 송신자와 수신자 사이의 결합도를 낮춤으로써 설계를 유연하고, 확장 가능학소, 재사용 가능하게 만든다.
- 메시지를 기반으로 한 두객체 사이의 이 낮은 결합도가 바로 설계를 유연하고 확장 가능하며 재사용 가능하게 만드는 비결이다. 따라서 설계의 품질을 높이기 위해서는 훌륭한 메시지를 선택해야 한다.
참고 서적: http://www.yes24.com/Product/Goods/18249021?scode=032&OzSrank=1
'개발관련 서적 정리 > 객체지향의 사실과 오해' 카테고리의 다른 글
04. 역할, 책임, 협력 (0) | 2020.10.07 |
---|---|
03. 타입과 추상화 (0) | 2020.10.07 |
02. 이상한 나라의 객체 (0) | 2020.10.07 |
01. 협력하는 객체들의 공동체 (0) | 2020.07.02 |