Design Patterns

Why? Design patterns are elegant abstracted design elements which are not domain specific and hence widely applicable. Each design pattern addresses a specific design challenge and design patterns are commonly combined to address complex problems. Having a knowledge of design patterns in one’s designer toolbox enables designers to come up with elegant, simple and effective design solutions to a wide variety of tricky design challenges and also to effectively communicate the design solution to other software designers and developers.

For whom is the course?

The design patterns course is particularly suited for

  • software developers involved in software design
  • software architects


  • For each design pattern
    • What design problem is solved by the design pattern.
    • How the problem is solved
    • Benefits and risks of using the design pattern
    • Other patterns which should be considered instead of or in conjunction with the respective pattern
    • Implemented guidelines for different programming languages
  • Creational patterns
    • singleton, factory method, builder, abstract factory, prototype
  • Structural Patterns
    • composite, decorator, adapter, bridge, facade, flyweight
  • Dynamic Patterns
    • state, exposed state, template method, memento, mediator, visitor, acyclic visitor, chain of responsibilities, command
  • Patterns Solving Concurrency Challenges



The Design Patterns course is part of the

Scroll to Top