Design Patterns Elements Of Reusable Onject-Oriented Software - "Erich Gamma ;Richard Helm,Others" (2000)
20