Design Patterns in der Praxis richtig anwenden

Ob ein Design Pattern eingesetzt werden sollte oder nicht, ist für ein geschultes Auge leicht zu erkennen.

Design Patterns sind Lösungen für häufig wiederkehrende Aufgabenstellungen des objektorientierten Softwareentwurfs. So gesehen spielen sie eine ähnliche Rolle wie das kleine Einmaleins, das man auswendig lernt, um die Ergebnisse für häufig vorkommende Rechenaufgaben nicht immer wieder neu berechnen zu müssen.

Vorteile der Design Pattern Verwendung

Bild 1: Vorteile der Design Pattern Verwendung

Während die Anwendung des Einmaleins keinerlei Herausforderung darstellt, ist es bei Aufgabenstellungen des Softwareentwurfs nicht immer offensichtlich, welches Problem mit welchem Entwurfsmuster gelöst werden kann. Softwareentwickler, die der Meinung sind, eigentlich ein gutes Pattern-Verständnis zu haben, sind deshalb oft frustriert, weil ihnen die Anwendung trotz allem noch schwerfällt. Dabei ist es leicht nachvollziehbar, dass die Kenntnis eines Design Patterns nichts hilft, wenn man nicht weiß, wo es eingesetzt werden kann.

Welchen Zweck verfolgt das Entwurfsmuster?

Als Softwareentwickler neigt man dazu, sich Entwurfsmuster im Wesentlichen anhand ihrer Implementierung zu merken. Dies führt aber dazu, dass man die Anwendbarkeit eines Patterns auch auf dieser Basis prüfen muss. Diese Vorgehensweise ist zwar naheliegend, für die Praxis aber viel zu aufwändig und schwerfällig. Denn um erkennen zu können, ob ein Pattern eingesetzt werden kann oder nicht, genügt es, den Sinn und Zweck des Entwurfsmusters zu kennen.

Dieser Teil der Pattern-Beschreibung wird in der Praxis oft viel zu wenig beachtet. Dabei ist genau dies die Information, die man – genauso wie das kleine Einmaleins – immer parat haben sollte, wenn man objektorientierte Software entwirft! Wie ein auf diese Weise gefundenes Pattern dann implementiert werden muss, ist dagegen zu diesem Zeitpunkt noch völlig irrelevant. Das lässt sich später noch nachlesen, wenn man nicht mehr alle Details im Kopf hat.

Erzeugungsmuster - Design Patterns

Bild 2: Erzeugungsmuster

Strukturmuster - Design Patterns

Bild 3: Strukturmuster

Verhaltensmuster - Design Patterns

Bild 4: Verhaltensmuster

Die MicroConsult Design Patterns Schulung stellt neben den eigentlichen Entwurfsmustern auch Anwendungsszenarien vor. Dies geschieht nicht nur anhand von Einzelbeispielen, sondern auch in allgemeingültiger Form.

So schaffen unsere Teilnehmer die Grundlagen dafür, dass das im Kurs erworbene Pattern-Knowhow in der Praxis auch zur Anwendung kommt.

So äußerten sich Teilnehmer des Seminars „Design Patterns (nicht nur) für Embedded-Systeme“ (Auszug):

„Diese Schulung regt mich zur konzeptuellen Denkweise an. Realistische Beispiele haben Sinn und Zweck der besprochenen Entwurfsmuster gut erklärt. Ich bin mir sicher, das erworbene Wissen in Projekten einsetzen zu können.“

„Design Patterns nicht nur kennengelernt, sondern auch erarbeitet – dazu die wichtigsten Aspekte bezüglich der Pattern-Programmierung in Embedded-Systemen.“

„Wenn man Zeit sparen und die Entwicklung sowie die Strukturierung vereinfachen und wiederverwendbar machen möchte, sind Design Patterns die richtigen Werkzeuge dafür. Je mehr Werkzeuge man hat, desto flexibler und bereiter.“

Mehr Teilnehmerstimmen

Weiterführende Informationen

Beitrag: Mit Design Patterns Entwicklungszeit einsparen

MicroConsult Training: Design Patterns (nicht nur) für Embedded-Systeme

MicroConsult Training & Coaching: Softwarequalität

MicroConsult Fachwissen: Softwarequalität

MicroConsult Training & Coaching: Embedded-Programmierung

MicroConsult Fachwissen: Embedded-Softwareentwicklung

Veröffentlicht von

Karl Nieratschker

Karl Nieratschker

Unser Gastautor Karl Nieratschker hat mehr als 30 Jahre Berufserfahrung in den Bereichen Software-Entwicklung, Beratung und Training, hauptsächlich für Embedded/Realtime-Systeme sowie Windows- und Linux-Programmierung. Seit 1999 ist er freiberuflicher Dozent, Softwareberater und Coach mit Schwerpunkt auf objektorientierter Programmierung und Softwaredesign in ressourcenlimitierten Systemen sowie die Multithreading- und Multicore-Programmierung. Karl Nieratschker ist Referent zahlreicher MircoConsult-Trainings.