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