I have heard numerous accounts from programmers of varying experience levels on how this particular book and set of concepts changed the way they approach object-oriented software. Object-oriented software is about object interaction, implementation is trivial in a system where a reasonable framework is set.
Good object-oriented design, it is true, existed before Design Patterns was introduced, but it is the way object-oriented design was given a set of commonly agreed intuitive names of generic object traits that this piece of holy software scripture earned its place in the 5-star-league. By discussing and using agreed concepts, the processes involved with design, implementation and refactoring can be exposed to a much broader audience, because applying these naming conventions in code implies desired functionality. The approachable, yet rigorously thought-out guidelines in this book further makes reviewing code more efficient because comparison against tested design approaches can be utilized, pointing out many common pitfalls.
A word of caution. This work is very inspirational, and junior level programmers might, upon leafing through this book, emerge even too enthusiastic on applying generic design on systems where simpler approaches would be more logical.