Whether a design pattern should be used or not is easy for a trained eye to recognize.
Design patterns are solutions for frequently recurring tasks in object-oriented software design. In this sense, they play a similar role to the multiplication tables, which one learns by heart to avoid having to recalculate the results of frequently occurring arithmetic problems every time.

Image 1: Advantages of using design patterns
While applying the basics of design patterns presents no challenge, in software design tasks it's not always obvious which problem can be solved with which design pattern. Software developers who believe they have a good understanding of patterns are therefore often frustrated because they still struggle to apply them. It's easy to understand that knowing a design pattern is useless if you don't know where to use it.
What is the purpose of the design pattern?
As a software developer, one tends to remember design patterns primarily by their implementation. However, this means that the applicability of a pattern must also be assessed based on this. While this approach seems logical, it is far too time-consuming and cumbersome in practice. To determine whether a pattern can be used or not, it is sufficient to understand the purpose and intent of the design pattern.
This part of the pattern description is often given far too little attention in practice. Yet this is precisely the information that—just like the multiplication tables—you should always have readily available when designing object-oriented software! How a pattern found in this way should then be implemented is completely irrelevant at this point. That can be looked up later when you no longer have all the details fresh in your mind.

Figure 2: Production pattern

Figure 3: Structural pattern

Figure 4: Behavioral patterns
The MicroConsult Design Patterns Training In addition to the actual design patterns, it also presents application scenarios. This is done not only using individual examples, but also in a generally applicable form.
In this way, our participants create the foundation for the pattern know-how acquired in the course to be applied in practice.
This is what participants of the seminar expressed:„Design patterns (not only) for embedded systems“ (Excerpt):
„"This training encourages me to think conceptually. Realistic examples clearly explained the meaning and purpose of the design patterns discussed. I am confident that I will be able to apply the acquired knowledge in projects."“
„"We not only learned about design patterns, but also developed them – including the most important aspects regarding pattern programming in embedded systems."“
„"If you want to save time and simplify and reuse development and structuring, design patterns are the right tools for that. The more tools you have, the more flexible and prepared you are."“
Further information
Article: Saving development time with design patterns
MicroConsult Training: Design Patterns (not only) for Embedded Systems
MicroConsult Training & Coaching: Software quality
MicroConsult Expertise: Software Quality

