A design pattern is a description of a recurring solution for a recurring design problem in a certain context.