Design Patterns Elemets Of Reusalle Object - Erich Gamma . (New Delhi Pearson Education)