Author: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides