Design patterns are reusable solutions to commonly occurring problems in software design.
A design pattern is a reusable solution to a common problem in software design. It's like a recipe: instead of figuring out how to make chocolate chip cookies from scratch every time, you follow a proven recipe.