Programming Design Patterns

  • Reusable - named blueprints you can drop into many designs
  • Repeatable - solve the same core problem across projects
  • Contextual - apply only when a specific situation and constraints exist
  • Clear Trade-offs - spell out exactly what you gain and what are the costs
  • Scale-friendly - their payoff grows as the codebase grows

Behavioral Design Patterns

How objects communicate with each other strategy_pattern state_pattern Iterator_pattern observer_pattern command_pattern

Structural Design Patterns

How objects relate to each other decorator_pattern composite_pattern adaptor_pattern

Creational Design Patterns

How objects are created singleton_pattern factory_pattern

  • Facade – Simplifies the interface of a set of classes.
  • Proxy – Wraps an object to control access to it.
  • Template Method – Subclasses decide how to implement steps in an algorithm.
  • Abstract Factory – Allows a client to create families of objects without specifying their concrete classes.

Not categorized

facade_pattern template_method_pattern proxy_pattern bridge_pattern builder_pattern chain_of_responsibility_pattern flyweight_pattern interpreter_pattern mediator_pattern prototype_pattern memento_pattern visitor_pattern