• Design patterns are common architectural approaches, introduced to software by GOF design patterns book in 1994.

  • Design patterns are solutions to recurring problems; guidelines on how to tackle certain problems

  • Wikipedia describes them as

    • In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations.
  • creational design patterns

  • structural design patterns

  • behavioural design patterns