Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.
There are three main categories of design patterns:
- Creational patterns
- Structural patterns
- Behavioral patterns