Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides