Design Patterns; Elements of Reusable Object Oriented Software - Gamma (Erich); And Others
20