Design Patterns: Elements of Reusable Object-Oriented Software – VERY GOOD

A nice touch in this unbranded textbook is the real-world applications section.