Design patterns: elements of reusable object-oriented software - Gamma, Erich (1995)
Keywords: GEN