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

Grundlagen der Programmierung: Entwurfsmuster

Erbauer: Noch ein Lösungsansatz

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wenn Objekte viele Attribute besitzen, können sie zuerst "leer" erzeugt und dann über entsprechende set-Methoden "befüllt" werden. Dieses Video untersucht Vor- und Nachteile dieses Vorgehens.
02:52

Transkript

Wenn wir alle möglichen Varianten, in den ein komplexes Objekt erzeugt werden können soll, versuchen mit Konstruktoren abzudecken, würde das sehr schnell zu einer sehr großen Anzahl von Konstruktoren führen, die für den Client am Ende ähnlich kompliziert zu handhaben wären, als wenn er sich gleich um alles selbst kümmert. Eine weitere Möglichkeit besteht darin, den Schrank als JavaBean zu implementieren. Das heißt, ein Standardkonstruktor, Konstruktor ohne Parameter und für alle Attribute entsprechende Set-Methoden, mit dem wir die Werte der Attribute festlegen können. Auch das habe ich hier schon vorbereitet. Wir haben hier eine zweite Klasse. Die habe ich einfach SchrankBean genannt und die sieht folgendermaßen aus. Zuerst natürlich die Konstanten, die wir schon kennen und dann die Attribute. Das sind auch die gleichen. Den Konstruktor habe ich komplett weggelassen. Das heißt, ich bekomme vom Compiler den Standardkonstruktor geschenkt. Nun gibt es für jedes Attribut eine entsprechende Set-Methode. In diesen Methoden können, wenn nötig, sogar die entsprechenden Validierungen vorgenommen werden. Hier zum Beispiel wenn die Anzahl der Türen nicht passt, dann gibt es eine IllegalArgumentException. Da wir für jedes Attribut die passende Set-Methode haben, können wir natürlich auch alle Attribute entsprechend setzen. Schauen wir, wie die Anwendung eines solchen SchrankBean aussehen würde. Dafür habe ich die Testklasse schon vorbereitet OhneErbauerBeanDemo. Das sieht dann so aus. Wenn ich einen Schrank haben möchte, rufe ich den Schrankkonstruktor auf. Dann rufe ich den entsprechenden Setter auf, in diesem Fall 2 Türen und dann ist der Schrank fertig. Der zweite Schrank auch wieder Konstruktor aufrufen, dann die entsprechenden Setter aufrufen und auch hier ist der Schrank am Ende fertig. Ist zwar ein bisschen mehr Tipparbeit, scheint aber auch zu funktionieren. Was gibt es daran jetzt wieder auszusetzen? Das Problem ist, dass wir auf diese Weise Schränke bauen können, die eigentlich gar nicht erlaubt sind. Wenn ich den Standardkonstruktor aufrufe, bekomme ich ein fertiges Objekt und dann könnte ich auf die Idee kommen, dass ich dieses Objekt jetzt benutzen darf. Auf diese Weise ließe sich ein Schrank komplett ohne Türen bauen, was natürlich Quatsch ist. Auch wenn es Abhängigkeiten von Attributen untereinander gibt, können die auf diese Weise nicht berücksichtigt werden. Ich baue mir hier einen Schrank. Setze die Zahl der Türen korrekt auf 3, dann wird die Oberfläche als unbehandelt gesetzt und danach sage ich, ich hätte gerne die Farbe blau. Das kann ich hier programmtechnisch zwar machen, aber eine unbehandelte Oberfläche hat keine blaue Farbe. Schließlich sind wir auf diese Weise gezwungen, dass es tatsächlich für alle Attribute entsprechende Set-Methoden geben muss. Selbst für Attribute, die eigentlich zum Beispiel readonly sein sollten. Beispielsweise sollte sich die Größe eines Schranks im Nachhinein nicht mehr ändern lassen. Das heißt in unserem Beispiel, die Anzahl der Türen sollte eigentlich gar nicht mehr verändert werden können. Um die Anzahl der Türen aber überhaupt auf einen Wert setzen zu können, brauchen wir den Setter. Alles in allem kann man das zusammenfassen, diese Variante kommt für uns eigentlich auch nicht wirklich in Frage. Damit haben Sie jetzt also zumindest schon gesehen, wie es ohne Erbauer nicht geht.

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!