The foundation of an object oriented system is the message.
Strong and confident messages requires three elements:
- We must identify the messages we want to send in order to accomplish the task at hand.
- We must identify the roles which correspond to those messages.
- We must ensure the method's logic receives objects which can play those