Design Patterns
Design patterns are solutions to some known and frequent occurring problems. A design pattern is not a concrete solution that can be directly implemented to code, instead it's just a description or a template for how to solve a particular problem.
Classifications
Design Patterns can be classified to many categories:
Creational Patterns
Structural Patterns
Behavioral Patterns
Architectural Patterns
Concurrency Patterns
SQL Patterns
There're many more categories, but the commonly used and mentioned are Creational, Structural, and Behavioral patterns (they are mostly commonly mentioned because this was the classification in the original book of design patterns written by the Gang of Four).
Criticisms
Unnecessary code duplication
Patterns are usually a workaround for missing language features
Doesn't differ from other abstractions
Patterns Catalogue
Last updated