A design pattern refers to a general reusable or repeatable solution to the different problem that occurs in software design. They are like blueprints. The pattern shows the relationships and interactions between classes or objects.