본문 바로가기
개발관련 서적 정리/객체지향의 사실과 오해

05. 책임과 메시지

by Backchus 2020. 10. 7.

책임과 메시지

자율적인 책임

설계의 품질을 좌우하는 책임

  • 자율적인 객체란 스스로의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미한다.

'어떻게'가 아니라 '무엇'을

  • 자율적인 책임의 특징은 객체가 '어떻게(how)' 해야 하는가가 아니라 '무엇(what)'을 해야 하는가를 설명한다는 것이다.

책임을 자극하는 메시지

  • 책임이라는 말 속에는 어떤 행동을 수행한다는 의미가 포함돼 있다.
  • 객체가 자신에게 할당된 책임을 수행하도록 만드는 것은 외부에서 전달되는 요청이다.
  • 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 요청을 전송하는 것뿐이다. 그리고 이 요청을 우리는 메시지라고 부른다. 메시지는 객체로 하여금 자신의 책임, 즉 행동을 수행하게 만드는 유일한 방법이다.

메시지와 메서드

메시지

  • 메시지는 객체들이 서로 협력하기 위해 사용할 수 있는 유일한 의사소통 수단이다. 객체가 메시지를 수신할 수 있다는 것은 객체가 메시지에 해당하는 책임을 수행할 수 있다는 것을 의미한다. 객체가 유일하게 이해할 수 있는 의사소통 수단은 메시지뿐이며 객체는 메시지를 처리하기 위한 방법을 자율적으로 선택할 수 있다.
  • 외부의 객체는 메시지에 관해서만 볼 수 있고 객체 내부는 볼 수 없기 때문에 자연스럽게 객체의 외부와 내부가 분리된다.

메서드

  • 메시지는 '어떻게'수행될 것인지는 명시하지 않는다. 메시지는 단지 오퍼레이션을 통해 '무엇'이 실행되기를 바라는지만 명시하며, 어떤 메서드를 선택할 것인지는 전적으로 수신자의 결정에 좌우된다.

다형성

  • 다형성이란 서로 다른 유형의 객체가 동일한 메시지에 대해 서로 다르게 반응하는 것을 의미한다.
  • 다형성은 하나의 메시지와 하나 이상의 메서드 사이의 관계로 볼 수 있다.
  • 서로 다른 객체들이 다형성을 만족시킨다는 것은 객체들이 동일한 책임을 공유한다는 것을 의미한다.
  • 송신자의 관점에서 다형적인 수신자들을 구별할 필요가 없으며 자신의 요청을 수행할 책임을 지닌다는 점에서 모두 동일하다.
  • 다형성은 송신자와 수신자 간의 객체 타입에 대한 결합도를 메시지에 대한 결합도로 낮춤으로써 달성된다.

유연하고 확장 가능하고 재사용성이 높은 협력의 의미

  • 첫째, 협력이 유연해진다.
  • 둘째, 협력이 수행되는 방식을 확장할 수 있다.
  • 셋째, 협력이 수행되는 방식을 재사용할 수 있다.

송신자와 수신자를 약하게 연결하는 메시지

  • 메시지는 송신자와 수신자 사이의 결합도를 낮춤으로써 설계를 유연하고, 확장 가능학소, 재사용 가능하게 만든다.
  • 메시지를 기반으로 한 두객체 사이의 이 낮은 결합도가 바로 설계를 유연하고 확장 가능하며 재사용 가능하게 만드는 비결이다. 따라서 설계의 품질을 높이기 위해서는 훌륭한 메시지를 선택해야 한다.

참고 서적: http://www.yes24.com/Product/Goods/18249021?scode=032&OzSrank=1