5 Objektorientiertes Design
5 Objektorientiertes Design
5 Objektorientiertes Design
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
92 3 <strong>Objektorientiertes</strong> <strong>Design</strong><br />
Abbildung 3-15 Zwei Interfaces und eine abstrakte Klasse<br />
Bewertung<br />
Der Einsatz von Interfaces ...<br />
+ entkoppelt Spezifikation und Realisierung: Dadurch kennen sich nutzende und<br />
Funktionalität bereitstellende Klassen nicht. Nutzende Klassen dürfen sich daher<br />
nicht auf spezielle Implementierungen oder Implementierungsdetails verlassen.<br />
+ erleichtert den Austausch einer konkreten Implementierung: Ein Beispiel dafür<br />
ist das Interface List aus dem Collections-Framework mit seinen Realisierungen<br />
ArrayList, LinkedList und Vector.<br />
+ ermöglicht die Definition der tatsächlichen Schnittstelle. In Interfaces werden die<br />
angebotenen Methoden zentral definiert, statt verstreut im Sourcecode in Form von<br />
öffentlichen Methoden aufgeführt zu sein.<br />
o<br />
o<br />
bietet keinen Zugriff auf den Konstruktor 12 , da sie nur Methoden deklarieren.<br />
erfordert die Realisierung öffentlicher Methoden.<br />
Tipp: Implizite Zugriffsmodifier<br />
In Java sind alle in Interfaces definierten ...<br />
■<br />
■<br />
Methoden immer mit den Zugriffsmodifier public und abstract definiert.<br />
Variablen implizit als public, static und final definiert. Diese sind dadurch<br />
als Konstanten nach außen sichtbar.<br />
Die obigen Zugriffsmodifier können explizit im Sourcecode angegeben werden. Sie<br />
dürfen einzeln oder gemeinsam angegeben werden und sind unabhängig davon<br />
immer vorhanden. Alle anderen Zugriffsmodifier sind in Interfaces nicht erlaubt.<br />
12 Wobei dies in vielen Fällen eher ein Vorteil als ein Nachteil ist. Mithilfe der Entwurfsmuster<br />
ERZEUGUNGSMETHODE und FABRIKMETHODE (vgl. Abschnitte 14.1.1 und 14.1.2) kann man<br />
implementierende Klassen verstecken.