A pattern, in this context, is a repeatable solution for a well-known problem. A pattern contains a definition of the problem it solves and the applicable solution. Optionally conditions and consequences are included as well. De proposed solution is the most elegant, flexible, clean and beautiful solution, because many people have thought it over and over.
The habit of documenting patterns comes from the architectural/construction industry and is almost single-handedly invented by Christopher Alexander . He has documented dozens of patterns for the construction of whole villages as well as single rooms and everything in between. He published those patterns in a book called ‘The Timeless Way of Building’.
A magnificent quote from the book:
There is one timeless way of building. It is a thousand years old, and the same today as it has ever been. The great traditional buildings of the past, the villages and tents and temples in which man feels at home, have always been made by people who were very close to the center of this way. It is not possible to make great buildings, or great towns, beautiful places, places where you feel yourself, places where you feel alive, except by following this way. And, as you will see, this way will lead anyone who looks for it to buildings which are themselves as ancient in their form, as the trees and hills, and as our faces are.
There are a lot of people in software development community who have written down patterns for all kinds of problems, ranging from the smallest implementation detail to the highest architectural one. Some well known examples of those patterns can be found in the book ‘Design Patterns’, written by the ‘Gang of Four’ . It was that book which introduced me to the world of patterns, since then I have been looking for known and unknown patterns in my life.
I hope this short introduction gives you a clear idea of what I mean by pattern. If you have any questions, critics or comments please let me know.