Design Patterns: Elements Of Reusable Object-Oriented Software - Gamma (Erich) (2002)
15