Chapter 5. Collaborations

Christopher Alexander suggests that we solve a design problem in “the least arbitrary manner possible.” If we do so, we avoid misfits between form and context. So let’s not be cavalier about how our objects cooperate! Software objects are connected through interactions and shared responsibilities. If we design simple, consistent communications, our solution won’t be arbitrary. Our design will be more adaptable if parts can be changed without effects rippling throughout the system. A complex software system becomes manageable when responsibilities are partitioned and organized and when collaborations follow predictable patterns.

What Is Object Collaboration?

Collaborations are requests from one object to another. One object ...

Get Object Design: Roles, Responsibilities, and Collaborations now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.