Design Pattern (computer Science) by Frederic P. Miller, Agnes F. Vandome & John McBrewster