The Pragmatic Programmer, 20th Anniversary Edition:

It references the book mentioned in the paragraph above, that is “Design Patterns: Elements of Reusable Object-Oriented Software”. Here’s a link to it:

I might add, “Head First Design Patterns” very good introduction to the topic that is more conversational (notice the front cover pays homage to the original!).