24.11.2013 Aufrufe

5 Objektorientiertes Design

5 Objektorientiertes Design

5 Objektorientiertes Design

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!