Software Design Patterns

A software design pattern, in the context of software engineering, is a general, reusable solution to a commonly occurring problem within a given context in software design.

Design patterns became popular after the publication of the book “Design patterns” (1995), written by four authors known as the Gang of Four.

List of Software Design Patterns

A full list of most common software design patterns can be found on this link.

Main categories for software design patterns:

  1. Creational
  2. Structural
  3. Behavioral

Creational controls how objects are created, composed, and represented.

Structural are concerned with how classes and objects are composed to form larger structures.

Behavioural are focused on communication between classes.

Creational

Creational patterns:

  • Singleton
  • Builder
  • Abstract factory
  • Prototype

Builder

Builder pattern at Wikipedia

Structural

Structural patterns

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Behavioral

Behavioral patterns:

  • Visitor
  • Chain of responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method

Strategy

Strategy pattern allows to have different methods and decide it on execution time.

You might also be interested in…

External references

Leave a Reply

Your email address will not be published. Required fields are marked *