Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
In the world of software, a pattern is a tangible manifestation of an organization's tribal memory.
—Grady Booch in Core J2EE Patterns
[A pattern is] a solution to a problem in a context
—The Gang of Four, Design Patterns: Elements of Reusable Object-Oriented Software
As these quotations imply, a design pattern is a problem analyzed with good practice for its solution explained.
Problems tend to recur, and as web programmers, we must solve them time and time again. How are we going to handle an incoming request? How can we translate this data into instructions for our system? How should we acquire data? Present results? Over time, we answer these questions with a greater or lesser degree of elegance and evolve an informal set of techniques that we use and reuse in our projects. These techniques are patterns of design.