Grundlagen der Programmierung: Entwurfsmuster

Prinzip 2: Schnittstelle und Implementierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Was es bedeutet, auf eine Schnittstelle zu programmieren und auch, was es nicht bedeutet, zeigt dieses Video.
02:42

Transkript

Wenden wir uns dem zweiten objektorientierten Entwurfsprinzip zu und das heißt Programmiere auf eine Schnittstelle und nicht auf eine Implantierung. Die Schnittstelle beschreibt, welche Funktionalität ein Client in Anspruch nehmen kann und die Implementierung stellt diese Funktionalität zur Verfügung. Wenn der Client nur die Schnittstelle anspricht und sich nicht auf eine konkrete Implementierung abstützt, dann wird die Implementierung dadurch austauschbar, ohne dass der Client etwas davon wissen muss. Unser System wird also flexibler. Dabei gibt es zwei Dinge zu beachten. Zuerst die Implementierung austauschbar zu machen, ist nur dann sinnvoll oder notwendig, wenn wir tatsächlich mehr als nur eine Implementierung haben bzw. demnächst haben werden. Die Anwendung des Prinzips einfach nur auf Verdacht, weil es vielleicht sein könnte, dass wir eines Tages zwei Implementierungen haben, führt eigentlich nur zu einem komplexeren System, zu mehr Code und zu einer Flexibilität, die wir möglicherweise niemals in Anspruch nehmen. Die zweite Sache, die man hier berücksichtigen sollte, ist, dass es dieses Prinzip auch vor Java schon gab. Anders ausgedrückt, mit Schnittstelle ist hier nicht zwangsläufig ein Java Interface gemeint. Schnittstelle meint ganz allgemein das, was ich von außen von einem Objekt sehen kann. Das heißt, es kann sich hier also durchaus auch um eine Oberklasse oder eine abstrakte Basisklasse handeln. Wenn ich zum Beispiel bereits eine abstrakte Basisklasse habe, dann definiert diese die Schnittstelle und ich muss nicht noch zusätzlich ein Interface einfügen. Nun schauen wir uns ein passendes Entwurfsmuster an. Wenn wir dieses Prinzip anwenden, dann kommen wir zum Beispiel auf die Fabrikmethode. Zur Erinnerung, es gibt mehrere gleichartige Dienste, die ein Client in Anspruch nehmen kann. Abhängig vom Kontext möchte der Client mit dem einen oder mit dem anderen Dienst kommunizieren. In diesem Bild hier haben wir zum Beispiel 4 Dienste in 4 unterschiedlichen Klassen und der Client muss alle diese 4 Klassen kennen und muss wissen, wie er sie anspricht. In den Begriffen unseres Entwurfsprinzips ist der Client also auf die Implementierungen der Dienste hin programmiert. Das Entwurfsmuster Fabrikmethode führt nun eine Schnittstelle ein. Alle Dienste bieten diese Schnittstelle an und der Client kann diese Dienste auf die gleiche Weise ansprechen. Die Erzeugung des benötigen Dienstobjekts wird von einem zusätzlichen Objekt übernommen, der Fabrik, zu der der Client geht und die Fabrikmethode aufruft, von der er dann ein Objekt zurückbekommt, das die Schnittstelle anbietet, die er schon kennt. Auf diese Weise kann der Client also mit jedem Dienst kommunizieren, der diese Schnittstelle anbietet. Er ist nun also auf die Schnittstelle hin programmiert und nicht nur auf die Implementierung hin. Wenn ich nun beispielsweise weitere Implementierungen hinzufügen möchte, dann muss der Client überhaupt nichts mehr davon wissen. Diese Schnittstelle, also das Ding hier in der Mitte soll die Schnittstelle sein, kann jetzt durchaus sowohl eine echte Interface Deklaration sein als auch eine Basisklasse. Also auch hier gilt wieder, wenn Sie hier schon eine Basisklasse haben, dann müssen Sie nicht extra noch dafür ein Interface deklarieren.

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!