"Design Patterns: Elements of Reusable Object-Oriented Software" by the Gang of Four. It has sold over 500k copies and has been translated to numerous languages.
I have to say the "GOF" book was giant fraud, or at least a big mistake. It has no clear rules on when to use what pattern over another. This resulted in ambitious but naive programmers throwing design patterns at everything in ways that appeared haphazard to those not owning the coder's mind, creating "spaghetti objects". I went round and round in online forums trying to clarify the "rules" for pattern selection. It never resulted in anything definitive or fruitful. It's horrifically vague. The "art" had a cult-like quality to it.
https://en.wikipedia.org/wiki/Design_Patterns