Chapter 4. Creating Flexible Interfaces
It’s tempting to think of object-oriented applications as being the sum of their classes. Classes are so very visible; design discussions often revolve around class responsibilities and dependencies. Classes are what you see in your text editor and what you check in to your source code repository.
There is design detail that must be captured at this level but an object-oriented application is more than just classes. It is made up of classes but defined by messages. Classes control what’s in your source code repository; messages reflect the living, animated application.
Design, therefore, must be concerned with the messages that pass between objects. It deals not only with what objects know (their responsibilities) ...