Design patterns are optimal solutions to common design problems. As common problems are tossed around a community and are resolved, common solutions often emerge. Eventually, the best of these rise above the din, self-identify, and become refined until they reach the status of a design pattern.