Design Patterns are easy and elegant solutions of commonly having problems in software design. Design Patterns make it simpler to reuse successful designs and architectures of experienced and Professional Designers.
There are three types of Patterns -
1. Creational - Concerned with creation of objects
2. Structural - Concerned with composition of classes/objects
3. Behavioural - =Characterize the ways in which classes and objects interact and distribute responsibility.