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:

  1. Creational Patterns

  2. Structural Patterns

  3. Behavioral Patterns

  4. Architectural Patterns

  5. Concurrency Patterns

  6. 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

  1. Unnecessary code duplication

  2. Patterns are usually a workaround for missing language features

  3. Doesn't differ from other abstractions

Patterns Catalogue

Last updated