Software design patterns are reusable solutions to common problems in software development.


Creational Patterns - Provide object creation mechanisms that increase flexibility and reuse of existing code

  1. Singleton
  2. Factory
  3. Abstract Factory
  4. Builder
  5. Prototype

Structural patterns - Explains how to assemble objects and classes into larger structures, while keeping these structures flexible and efficient

  1. Adapter or Wrapper
  2. Composite]
  3. Proxy
  4. Fly Weight
  5. Facade
  6. Bridge
  7. Decorator

Behavioural patterns - takes care of effective communication and assignment of responsibilities btw objects

  1. Template method
  2. Mediator
  3. Chain of responsibility
  4. Observer
  5. Strategy
  6. Command
  7. State
  8. Visitor
  9. Iterator
  10. Interpreter
  11. Memento

Software Anti-patterns

Sources

Design Patterns CA Prep