5 Design Patterns every Software Engineer should know

Martin Leuckert
neotiv GmbH
Published in
6 min readNov 30, 2020

--

“Glass Ceiling” by Daniel Watson

When software engineers talk about Design Patterns, they usually talk about established and reusable constructs or architectures that address specific problems. For the most part, Design Patterns are defined independently of programming languages. If you are new to programming, you probably still don’t know what I am talking about. Anyway, you probably used a Design Pattern at some point without knowing it. In the following, I introduce five Design Patterns that every Software Engineer should know about.

Who creates and who uses Design Patterns?

Well, everyone can. If we take a brief look into the history of Design Patterns, we will find out that it originates back to Christopher Alexander, an architect who wrote articles and books like “The Pattern of Streets” or “A Pattern Language” in which he talks about actual architectural concepts, materials, and tools.

At the core […] is the idea people should design their homes, streets, and communities. This idea […] comes from the observation most of the wonderful places of the world were not made by architects, but by the people.

— Christopher Alexander et al., A Pattern Language, front bookflap

This is, in my opinion, a very fitting metaphor because everyone can define a Design Pattern even though this is…

--

--