Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Entwurfsmuster

Was sind Entwurfsmuster?

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wozu eigentlich Entwurfsmuster? Dieses Video erläutert, was Entwurfsmuster sind und welche Vorteile ihre Anwendung bringen kann.
04:42

Transkript

Wenn man damit beginnt sich in der Softwareentwicklung mit Entwurfsmustern zu beschäftigen, lautet eine der ersten Fragen typischerweise Was ist das eigentlich so ein Entwurfsmuster? In der Regel stößt man dann auf eine Beschreibung, die in etwa so lautet: Entwurfsmuster sind erprobte und bewährte Losungsschablonen für ein wiederkehrendes Problem im Entwurf. Gelegentlich steht dann noch dabei: Sie basieren auf den Erfahrungen anderer Entwickler. Das heißt, jemand anderes hatte dieses wiederkehrende Problem schon mal und hat sich bereits eine Lösung dafür überlegt. Um was für Probleme handelt es sich da so? Objektorientierte Softwareentwicklung heißt in der Regel, dass man einige Objekte hat und diese Objekte bieten irgendwelche Dienste an. Diese Dienste können dann von anderen Objekten in Anspruch genommen werden, indem diese anderen Objekte Methoden aufrufen. Für die Umsetzung komplexerer Abläufe reicht ein Methodenaufruf aber manchmal nicht aus, sondern es müssen vielleicht von mehreren Objekten mehrere Methoden aufgerufen werden und das Ganze möglichst auch noch in einer bestimmten Reihenfolge. Der Client hier auf der linken Seite, der diese Dienste nutzen möchte, muss also ziemlich detailliertes Wissen über dieser Dienst haben. Er muss die Namen der Klassen kennen. Er muss wissen, wo die Objekte sich befinden, wie die Methoden heißen, welche Methoden in welche Reihenfolge aufzurufen sind und mit welchen Parametern. Das macht die Entwicklung eines solchen Clients eigentlich unnötig aufwendig. Außerdem haben Änderungen oder Erweiterungen an unseren Diensten hier in der Regel auch Änderungen am Client zur Folge. Für dieses recht häufig anzutreffende Problem gibt es eine typische bewährte Lösung und die sieht folgendermaßen aus. Wir fügen unserem System ein weiteres Objekt hinzu, das sozusagen zwischen den eigentlichen Diensten und dem Client steht. Dieses zusätzliche Objekt kennt all die vielen komplexen Details, die Reihenfolgen der Methodenaufrufe usw. und stellt sie dann dem Client in Form einer wesentlich einfacheren Schnittstelle zur Verfügung, die der Client dann auch ganz entspannt aufrufen kann. Er ist jetzt auch nicht mehr abhängig von all diesen Klassen hier hinten, davon wo die Objekte liegen, wie die Methoden heißen oder mit welchen Parametern sie aufgerufen werden müssen. Änderungen an diesem System haben also auch keine Auswirkungen mehr auf den Client. So sieht im Prinzip schon ein Entwurfsmuster aus. Ein Muster besteht aus einer Problembeschreibung. Das heißt, wir haben ein wiederkehrendes Problem, das kurz beschrieben wird. Dann haben wir für dieses Problem eine bewährte funktionierende Lösung und damit wir auch wissen, worüber wir reden, geben wir dem Ganzen noch einen Namen. In diesem Fall heißt das Muster Fassade. Herzlichen Glückwunsch, Sie haben gerade Ihr erstes Entwurfsmuster kennengelernt. Damit man nun mit Entwurfsmustern vernünftig arbeiten kann, braucht man Sammlungen von Mustern. Man braucht etwas zum Nachschlagen. Man braucht Musterkataloge. Solche Kataloge sind immer nach einem ähnlichen Schema aufgebaut. Sie beginnen in der Regel damit, dem Namen des Musters vorzustellen und dann folgt eine Beschreibung des Problems, eine Beschreibung des Kontexts. Darauf folgt dann die Darstellung des Lösungsansatzes. Wie die Problembeschreibung ist das in der Regel Text, kann aber durchaus auch mit Diagrammen oder Codeschnipseln vervollständigt werden. Schließlich wird noch beschrieben, welche Auswirkungen der Einsatz dieses Musters haben kann, also welche Vorteile, welche Nachteile, was man eventuell berücksichtigen sollte und welche Alternativen möglicherweise in Frage kommen können. Es gibt eine ganze Reihe solcher Musterkataloge. Eine der ersten und bekanntesten ist das Buch Design Patterns mit dem deutschen Titel Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software von 1995. Dieses Buch ist also ein Entwurfsmusterkatalog für Softwareentwickler und enthält 23 Muster. Die vier Autoren Gamma, Helm, Johnson und Vlissides sind auch als Gang of Four bekannt, was dann häufig abgekürzt wird mit dem Kürzel GoF. Es ist einfach kürzer als jedes Mal alle vier Namen nennen zu müssen. Nun gibt es also Entwurfsmuster. Es gibt Kataloge und es stellt sich die Frage, was bringt es. Zuerst einmal müssen wir das Rad nicht immer wieder neu erfinden. Andere Entwickler hatten das Problem auch schon und sie haben sich bereits eine Lösung dafür überlegt. Wir können von dieser Erfahrung profitieren und müssen nicht den ganzen Weg nochmal zurücklegen. Ein weiterer wichtiger Punkt ist, Muster führen zu einem gemeinsamen Vokabular für Entwickler. Wenn ich nicht muss, ich habe diese Objekte und die bieten alle Dienste an und ich habe diesen Client und möchte diese Dienste benutzen, das ist aber viel zu kompliziert, also setze ich ein Objekt dazwischen. Sondern ich sage, schau einmal, ich setze hier eine Fassade ein. Dann macht das die Kommunikation kürzer, aber eben auch klarer und weniger missverständlich. Ein Entwickler, der diese Muster kennt, findet die natürlich im Quelltext auch schneller wieder. Das heißt, der Quelltext wird für ihn besser lesbar und leichter verständlich und schließlich, wenn ich den Quelltext eines Programms besser lesen und leichter verstehen kann, dann kann ich ihn auch leichter ändern und erweitern. Das heißt, ich verbessere auch die Wartbarkeit durch den Einsatz von Entwurfsmustern. Damit haben Sie nun also einen ersten Überblick darüber, was Entwurfsmuster eigentlich sind und was Sie vom Einsatz dieser Entwurfsmuster erwarten können.

Grundlagen der Programmierung: Entwurfsmuster

Erhalten Sie einen fundierten Einstieg in das Thema Entwurfsmuster (Design Patterns) und erfahren Sie, wie Sie Entwurfsmuster in objektorientierten Programmiersprechen umsetzen.

2 Std. 49 min (33 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!