의도는 "메세징"이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다는 모듈이 어떻게 커뮤니케이션하는가에 달려 있다
-앨런 케이[Kay 1998]-
책임을 명확하게 나눠야 오류가 생겼을 때 쉽게 해결할 수 있다.
자율성의 반댓말 타율성 <-자신의 의지 없이도 변경되어야 하는 것.
객체지향의 기본 구성단위는 자율적인 객체이다.
객체가 "무엇을 할지"알려줘야한다. 객체가 "어떻게"해야하는지 까지 알려주면 월권이다.
메세지는 객체로 하여금 자신의 책임, 즉 행동을 수행하게 만드는 유일한 방법이다.
다형성 - 송신자의 관점에서 다양한 수신자로부터 받는 응답이 동일하다는 것이 중요 - 동일한 역할을 수행할 수 있는 객체들 사이의 대체 가능성을 의미한다.
다형성 : 같은 메시지 다른 메서드(캬)
-> 수신자의 존재를 캡슐화함. (캬) 역할만 수행할 수 있으면 노상관.
책임주도 설계
What/Who 사이클: 어떤 행위가 필요할지를 먼저 결정 -> 행위를 수행할 객체 지정
Tell don't ask: 어짜피 송신자 입장에서는 누가 수신할지 모르니깐 묻지말고 시켜라 : 그만큼 송수신자의 관계가 느슨해진다.
메세지를 중심으로 설계된 객체는 유연하고 확장가능하다. 메시지를 믿어라 그러면 자율적인 책임은 저절로 따라올 것이다.