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

Grundlagen der Programmierung: Objektorientiertes Design

Klassenverantwortlichkeiten definieren

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Die Verantwortlichkeiten der einzelnen Klassen müssen innerhalb eines konzeptionellen Objektmodells definiert werden. Dabei überprüfen die einzelnen Objekte sämtliche Bestätigungen auf deren Richtigkeit und Vollständigkeit.

Transkript

Bisher haben wir uns anhand eines Use Case Szenarios mal die einzelnen Hauptworte, also die einzelnen Substantive herausgegriffen und haben aus Kunde, aus Produkt und aus Warenkorb und so weiter verschiedene Objekte gemacht. Und jetzt möchten wir einmal uns die Verben, also die Tunworte, hier in unserem Use Case Szenario anschauen und mal schauen, welche Eigenschaften beziehungsweise welches Verhalten diese Klassen überhaupt haben sollen. Ich habe das hier schon einmal zusammen gefasst. Wir sehen hier, der Kunde, der bestätigt die Produkte, er gibt Informationen zur Zahlung und zu seiner Adresse an, das System überprüft die Informationen, bestätigt die Bestellung und es wird eine E-Mail versendet. Und was Sie hier jetzt schwarz sehen, das sind eben die Verben aus unserem Use Case Szenario und aus diesen Verben werden in vielen Fällen dann die Methoden unserer Klassen und Objekte. Und jetzt geht es einmal darum, die Verantwortlichkeiten zu definieren. Ich habe hier unser Use Case Szenario mit den Objekten und den Verbindungen hier noch einmal aufgetragen. Wir sehen den Kunden, den Warenkorb, das Produkt und so weiter. Und wenn ich jetzt noch einmal kurz zurückgehe, dann sehen wir, dass hier Produkte bestätigt werden im Warenkorb. Und die Frage lautet jetzt, wer bestätigt denn eigentlich diese Produkte? Aus einer menschlichen Sichtweise würden wir sagen, klar, das ist der Kunde. Der soll bestätigen, dass er alles, was er in diesen Warenkorb gepackt hat, auch tatsächlich bestellen möchte. Das ist eine menschliche Sichtweise, aber bei der objekt- orientierten Programmierung steht nicht der Mensch immer im Mittelpunkt, sondern es sind die Objekte, das heißt, wir müssen uns überlegen, wer bestätigt denn eigentlich die Bestellung auf der objektorientierten Ebene? Und da ist es so, dass die Bestellung vom Objekt selber bestätigt wird. Denn es gilt ja das Paradigma, dass ein Objekt für sich selber in den meisten Fällen verantwortlich sein soll, das heißt, wenn eine Bestellung noch einmal bestätigt werden soll, noch einmal überprüft werden soll, ob da alles richtig ist, dann wird es zwar vom Kunden ausgelöst, aber der Kunde löst eine Methode im Objekt Bestellung aus. Und die Bestellung sagt, jawohl, ich bin korrekt. Alle Waren, die jetzt in mir drin sind quasi, die möchte der Kunde auch tatsächlich haben. Für Einsteiger in die objektorientierte Programmierung mag das noch ein bisschen ungewohnt klingen, aber es geht eben darum immer zu sagen, ich als Objekt weiß am Besten, was mir gut tut bzw. ich als Objekt weiß am Besten und am Meisten über mich Bescheid. Schauen wir einmal weiter. Der Kunde gibt die Information zur Zahlung und zu seiner Adresse an. Wenn wir uns das hier anschauen, dann sehen wir, dass der Kunde zwar diese Information eingibt, aber dass das Zahlungsobjekt natürlich überprüfen muss, ob diese Zahlungsangaben auch korrekt sind, ob der Kunde wirklich mit einer Kreditkarte bezahlen darf, oder ob man bei ihm Vorkasse braucht. Dann werden diese Informationen vom System überprüft und oftmals hat man in so Use Case Szenarien immer diesen Begriff, System überprüft etwas. Gehen Sie nicht soweit, dass Sie sagen, wir brauchen hier noch mal ein einzelnes Objekt und dieses Objekt heißt System und das überprüft alles. In Use Case Szenarien ist der Begriff System in Ordnung, aber wenn wir die Verantwortlichkeiten definieren, dann haben wir natürlich dieses Systemobjekt nicht, da müssen wir schauen, die Zahlungsinformationen, die werden natürlich vom Objekt Zahlung überprüft und die Adresse, die überprüft selber, ob es sie beispielsweise geben kann oder ob sie überhaupt auch tatsächlich angegeben ist und nicht dass sie fehlt und diese Bestellung dann ins Leere laufen würde. Die Bestellung wird bestätigt und eine E-Mail wird versendet und das ist jetzt ein Vorgang, der wird nicht vom Kunden ausgelöst, sondern der wird in vielen Fällen wahrscheinlich vom Objekt Bestellung ausgelöst, aber ob eine E-Mail tatsächlich versendet worden ist, ob wir die E-Mail-Adresse überhaupt haben, das sollte eigentlich das Objekt E-Mail überprüfen, und es sollte nicht innerhalb der Bestellung eine E-Mail-Überprüfung stattfinden. Zusammengefasst kann man sagen, dass anders als bei Use Cases und User Stories beispielsweise, es nicht so ist, dass der Mensch im Mittelpunkt steht, sondern wir schauen uns die einzelnen Objekte an und jedes Objekt sollte für sich selbst verantwortlich sein und auch wenn der Kunde beispielsweise eine Überprüfung startet, dann sollte auf der objekt- orientierten Ebene eigentlich diese Überprüfung vom Objekt Bestellung durchgeführt werden und nicht vom Objekt Kunde.

Grundlagen der Programmierung: Objektorientiertes Design

Lernen Sie alle Grundbegriffe und Methoden von objektorientiertem Design kennen und holen Sie sich das Rüstzeug, um bald Ihre eigene Softwareprojekte zu starten.

2 Std. 43 min (45 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!