Software Design Patterns

These are open source pieces of code that solve a common issue in a program. They can be:

  • Structural: How entities work together
  • Creational: how mechanisms are instantiated
  • Behavioral: Communication between entities

However, if the pattern is not implemented correctly, it can have disastrous repercussions.