Design Pattern is a reusable and named solution to a recurring problem in a context.
There are 3 categories of patterns when classified by the purpose:
- Structural Design Patterns
- Strategy Pattern: Defines a family of algorithms, encapsulates them and makes them interchangeable thus Strategy lets algorithm vary independently from the clients that use it. Example: Collections Java, List
- Creational Design Patterns: Allows creational of the objects
- Abstract Design factory pattern
- Behavioural Design Patterns
- The Gang of Four: The Definitive Design Patterns Book
- Head first Design patterns