Design patterns: Abstraction and reuse in object-oriented designs (1993)

by E Gamma, R Helm, R Johnson, J Vlissides
Venue:Proceedings of ECOOP'93