Instruct: Classify Amazon reviews into positive or negative sentiment
Query: This book changed how I program

I used to think that OOP was all about building elaborate class hierarchies. Reading this book I realize I was wrong. Large hierarchies lead to inflexible design. Flexibility is achieved by having objects from different classes collaborate. This book describes 21 different patterns for such collaborations. Each pattern is presented in a way that makes it easy to understand and easy to incorporate into your own designs.I strongly recommend this book to any intermediate OOP programmer.