Design Patterns: Elements of Reusable Object-Oriented Software – VERY GOOD A nice touch in this unbranded textbook is the real-world applications section.