Image for post

Photo by Pixabay of Pexels

The design pattern is one of the most important but feared aspects of software engineering, especially for people who are new to the topic. This article has been based on my own learning experience of software design patterns so, if you are a beginner, this one is surely for you.

When I started my associate architecture course, I had a hard time understanding the different software design patterns. The main reason for this was that the terms which are used in the patterns are pretty hard to understand at first. Besides this, it can hard to know which books should you read or which websites provide better guidance around the concept, so knowing how to progress can be tricky.

With this in mind, I wanted to create an introductory guide to design patterns. This article will start by going a bit deeper into the subject matter in an attempt to remove any mental blocks that this concept may bring up.

What is a design pattern?

According to Wikipedia, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.

The **context **is the situation in which you can apply the pattern. The **problem **refers to the goal you are trying to achieve in this situation. The **solution **is a general design that anyone can apply which resolves the goal and set of constraints.

According to the Gang of Four(GoF) book, there are 23 design patterns. You may say that they are the fundamental design patterns.

Image for post

Figure: Fundamental design patterns

If you are a beginner and are having a hard time understanding the concept, or are confused by why the term “design” appears in the name, the first thing to do is forget about the word “design”.

Image for post

#programming #software-engineering #system-design-interview #beginners-guide #design-patterns

Design Patterns 101
1.70 GEEK