Inhaltsverzeichnis[Verbergen] |
Was sind Design Patterns?
Design Patterns sind bewährte Lösungsansätze für wiederkehrende Entwurfsprobleme in der Softwareentwicklung.
In diesem Blogbeitrag erfährst du alles rund um die wichtigsten Design Patterns und wie du diese effektiv in deinem Projekt nutzt. Neben den 23 am häufigst verwendeten Design Patterns gibt es noch viele weitere Design Patterns wie zB Enterprise Patterns oder Data Model Patterns.
Design Patterns sind deshalb so wichtig, da sie elegante Lösungansätze bieten und bei gekonnter Umsetzung Kosten und Zeit sparen. In der Software Entwicklung stößt man immer wieder auf ähnliche Herausforderungen, wie ein Programm für bestimmte Fälle geschrieben werden soll. Stößt man auf eine solche Herausforderung ist es ratsam, sich nach einem geeigneten Design Pattern umzusehen bevor man das Rad neu erfindet.
Die wichtigsten und am meisten verwendeten Design Patterns werden in 3 Gruppen unterteilt und zwar gibt es die Creational patterns, die Structural patterns und die Behavioral patterns, siehe dazu auch folgende Grafik:
Die 3 Design Pattern Gruppen näher erläutert:
1. Creational Patterns (Konzeptionelle Pattern)
- dienen der Erzeugung von Objekten mithilfe von sogenannten Fabriken, wobei die Fabrik ganz genau weiß, wie ein Objekt erzeugt werden soll. Der eigentliche Programmcode, der ein bestimmtes Objekt benötigt, braucht daher nicht wissen, wie ein Objekt erzeugt wird.
- die eigentliche Implementierung kümmert sich somit nicht um die Erzeugung der Objekte, sondern lässt das Objekt erzeugen. Das Programm setzt nach der Erzeugung des Objekts mit dem Programmablauf fort. Die Anwendung selbst lagert dadurch das Erzeugen des Objekts aus und kann sich auf vollständig erzeugte Objekte verlassen.
2. Structural Patterns (Strukturelle Pattern)
- Structural Patterns sind für den Aufbau einfacher und effizienter Klassenhierarchien und Beziehungen zwischen verschiedenen Klassen verantwortlich.
- Ziel ist es, die Bindung zwischen 2 oder mehreren Klassen zu reduzieren
- verschiedenen Klassen können somit in Beziehung stehen und interagieren mittels einem vordefinierten Interface miteinander
- Der Verbund solcher Klassen erlaubt es, die Funktionalität des Gesamten zu erweitern, ohne dass dabei eine einzelne Klasse alles können muss. Somit interagieren verschiedene Klassen miteinander, wobei jede Klasse für sich ihr Hauptaufgabe dazu beiträgt unter dem Motto: gemeinsam im Verbund sind wir noch stärker
3. Behavioral Patterns (Verhaltensorientierte Pattern)
- Behavioral Patterns dienen dazu die Kommunikation zwischen Objekten zu vereinfachen. Die Software wird dadurch flexibler
- Die Art und Weise wie Objekte miteinander kommunizieren kann damit zur Laufzeit auch geändert werden.
Weitere Vorteile, die sich durch Design Patterns ergeben:
Wie bereits erwähnt lösen Design Patterns wiederkehrende Entwurfsprobleme auf leichte und verständliche Art und Weise. Weiters dienen Sie auch dazu komplexe Sachverhalte mit nur einem Begriff zu beschreiben. So erleichtern Design Patterns auch die Kommunikation zwischen Programmierern.