Design patterns are solutions to software reuse for software development in real-world. A pattern is the outline of a reusable solution to a general problem encountered in a particular context. Studying patterns is an effective way to learn from the experience of others. They contain a solution that has been proven to effectively solve the problem in the indicated context. The 23 Gang of Four (GoF) patterns are generally considered the foundation for all other design patterns. They are categorized in three groups: Creational, Structural, and Behavioural.
- Creational Patterns: Used to construct objects such that they can be decoupled from their implementing system.
- Structural Patterns: Used to form large object structures between many disparate objects.
- Behavioral Patterns: Used to manage algorithms, relationships, and responsibilities between objects.