의도는 “메시징”이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가 보다는 모듈이 어떻게 커뮤니케이션하는가에 달려있다.
- 엘런 케이
명확한 책임과 역할을 지닌 객체가 협력에 참여해야한다. 역할과 책임이 흐릿할수록 발작을 일으키는 객체를 도와줄 어떤 협력자도 찾지 못할 것이다.
앞 장에서도 강조했다시피 객체는 자율적이다. 기능을 구현하기 위해 협력하고, 협력 과정에서 각자 맡은 바 책임을 다하기 위해 자율적으로 판단하고 행동한다.
<aside> 💡 자율성: 자기 스스로의 원칙에 따라 어떤 일을 하거나 자신을 통제해서 절제하는 성질이나 특성
</aside>
객체가 어떤 행동을 하는 유일한 이유? 다른 객체로부터 요청 수신
요청을 처리하기 위해 객체가 수행하는 행동? 책임
따라서 적절한 책임이 자율적인 객체를 낳고, 자율적인 객체들이 모여 유연하고 단순한 협력을 낳는다. 그러므로 객체의 자율성을 무척 중요한 요소이다.
그럼 어떻게 해야 객체가 자율적인 것일까? 객체에게 할당되는 책임이 자율적이어야 한다.