Design Patterns are group of solution to typical and most commonly occurring problems while designing any software program. They are mostly related to object orient design but not restricted to OOD. There are many patterns available but most of them are some variation of 1 or few patterns originally identified by GoF (Gang of Four) in their book 'Design Patterns: Elements of Reusable Object-Oriented Software'.
They identified 23 patterns and grouped them under
- Creational
- Structural
- Behavioral types