Room 3 

11:40 - 12:40 


Talk (60 min)

Design Patterns - The Most Common Misconceptions (1 of N)

Design patterns are everywhere, as they are the key to managing dependencies between software entities.

But despite their fundamental importance, there are some common misconceptions about them, in particular about several of the most often used design patterns:

  • Factory functions are frequently mistaken for the Factory Method design pattern
  • The Builder design pattern is often associated with the implementation of constructors
  • The Bridge and Strategy design patterns are regularly mixed-up
  • The modern form of the Visitor design pattern, std::variant, is often considered a replacement of virtual functions
  • (Bonus) The Decorator design pattern is sometimes mistaken as the Chain of Responsibility design pattern

In this talk I'll shed some light on these misconceptions and explain why they obstruct the proper communication about software design and architecture. Additionally, I’ll address the biggest misconception of all: design patterns are a tool for object-oriented programming.

Klaus Iglberger

Klaus Iglberger is a freelancing C++ trainer and consultant. He has finished his PhD in computer science in 2010 and since then is focused on large-scale C++ software design. He shares his experience in popular advanced C++ courses around the world (mainly in Germany, but also the EU and US). Additionally, he is the author of "C++ Software Design" (, the initiator and lead designer of the Blaze C++ math library ( and an organizer of the Munich C++ user group (