Rheinwerk Design < openbook > Rheinwerk Design - Know-how für Kreative.
Know-how für Kreative

 << zurück
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/)
Objektorientierung und Codedesign mit Flash MX 2004
Buch: ActionScript 1 und 2

ActionScript 1 und 2
672 S., mit CD, Referenzkarte, 44,90 Euro
Rheinwerk Design
ISBN 3-89842-221-6
gp Kapitel 16 ActionScript 2.0
  gp 16.1 Klassen
    gp 16.1.1 class
    gp 16.1.2 Technisch gesehen
    gp 16.1.3 Klassenpfade
    gp 16.1.4 ASO (ActionScript Objekt)
  gp 16.2 Packages
    gp 16.2.1 import
  gp 16.3 Typisierung
  gp 16.4 Vererbung
    gp 16.4.1 extends
  gp 16.5 Schnittstellen
    gp 16.5.1 Interfaces erstellen
    gp 16.5.2 Implements
  gp 16.6 Öffentlich oder privat
  gp 16.7 Statisch
    gp 16.7.1 static
    gp 16.7.2 Öffentlich oder privat
    gp 16.7.3 Statisch versus Singleton
  gp 16.8 Getter und Setter
    gp 16.8.1 addProperty
    gp 16.8.2 Getter und Setter in ActionScript 2.0
  gp 16.9 Dynamisch
    gp 16.9.1 dynamic
  gp 16.10 Intrinsic


Rheinwerk Design - Zum Seitenanfang

16.5 Schnittstellen  downtop

ActionScript 2.0\Schnittstellen

Zu den Stärken der Objektorientierung zählt, dass Objekte feste Schnittstellen verwenden, über die sie miteinander kommunizieren. Das macht es bei komplexen Projekten einfacher, Objekte unterschiedlichen Typs zu nutzen, solange die Schnittstellen identisch sind. In einem Shop sollte es für die Ermittlung des Preises beispielsweise unerheblich sein, ob es sich um eine Hose oder eine Jacke handelt:

gesamtPreis = jeans.ermittlePreis()+sacko.ermittlePreis();

Schnittstellen (engl. Interfaces) helfen dabei, solche Strukturen festzulegen, indem sie Methoden und deren Parameter vorschreiben. Die Beschreibung einer Methode inklusive der Typen für die Parameter und die Rückgabe bezeichnet man dabei als Signatur. Ein Interface ist somit nichts anderes als eine Sammlung von Signaturen.

Schnittstellen stellen die Verwendbarkeit von Objekten in einem speziellen Kontext sicher, da die in der Schnittstelle definierten Signaturen implementiert sein müssen! Ein angenehmer Nebeneffekt von Schnittstellen ist, dass so Funktionalität auch in Gruppen zusammengefasst werden kann. Sämtliche Methoden, die von den Produkten in einem Shop beherrscht werden müssen, könnten z.B. in der Schnittstelle »Verkaufbar« deklariert sein.

Polymorphie

Falls Objekte aufgrund gleicher Signaturen in einem Programm gegeneinander ausgetauscht werden können, dann spricht man von Polymorphie. Die Gleichartigkeit von Methoden kann durch Schnittstellen sichergestellt werden.


Rheinwerk Design - Zum Seitenanfang

16.5.1 Interfaces erstellen  downtop

Die Benennung und Speicherung von Interfaces sowie die Organisation in Packages verhält sich genauso wie bei Klassen.

Eine Schnittstelle erstellen Sie wie eine Klasse, nur dass eine Schnittstelle nichts weiter als die Deklaration enthält. Die eigentliche Programmierung der Funktionalität geschieht in den Klassen, die die Schnittstelle dann verwenden.

interface interfaceName {
   // Deklaration von Methoden
}

Innerhalb einer Schnittstelle dürfen nur Methoden und keine Eigenschaften deklariert werden (siehe »Öffentlich und privat«, Seite 412). Private oder statische Methoden sind ebenfalls nicht erlaubt. Das Schlüsselwort public für Methoden ist dabei wie auch schon bei den Klassen optional:

interface Einkaufen {
   function sucheAus();
   public function kaufe();
}
Signatur

Natürlich darf hier bereits typisiert werden, um die Umsetzung und den Aufruf der Methoden typsicher zu gestalteten. Hier spricht man dann auch von der Signatur einer Methode:

interface Einkaufen {
   function sucheAus(obj:Object):Void;
   function kaufe(anzahl:Number):Void;
}

Eine Schnittstelle speichern Sie als ActionScript-Datei unter dem Namen der Schnittstelle ab. Wie bei Klassen muss der Name der Schnittstelle mit dem Namen der Datei identisch sein. Außerdem sind auch hier wieder Packages erlaubt (siehe »Packages« ab Seite 403))!


Rheinwerk Design - Zum Seitenanfang

16.5.2 Implements  toptop

Die eigentliche Programmierung der Methoden aus einer Schnittstelle geschieht in den Klassen, die die Schnittstelle verwenden.

class Frau implements Einkaufen {
   var ausgesuchtesObjekt:Object;
   function sucheAus(obj:Object):Void {
      ausgesuchtesObjekt = obj;
   }
   function kaufe(anzahl:Number):Void {
      trace("Ich kaufe "+String(anzahl)+" "+String(ausgesuchtes
Objekt));
   }
}

Sollten bei der Verwendung einer Schnittstelle abweichende Signaturen programmiert oder die Umsetzung einer Methode sogar ganz vergessen werden, dann meldet Flash dies als Fehler. Die Klasse mit der Schnittstelle kommt im Folgenden wie jede andere Klasse zum Einsatz:

frau = new Frau();
frau.sucheAus("Äpfel");
frau.kaufe(5);
// Ausgabe ist "Ich kaufe 5 Äpfel"

Klassen dürfen auch mehrere Schnittstellen gleichzeitig verwenden – Hauptsache, Sie vergessen nicht, sämtliche zugehörigen Methoden zu implementieren:

class Frau implements Einkaufen, Tanzen, Kochen, Singen {
   ...
}
Vererben von Schnittstellen

Schnittstellen dürfen von anderen Schnittstellen erben und somit eine vorhandene Schnittstelle erweitern. Beispielsweise haben Sie eine Schnittstelle »Einkaufen« und möchten nur eine Schnittstelle »Verkaufen« umsetzen, die auch das »Einkaufen« umfasst. Dann reicht es aus, dass die Schnittstelle »Verkaufen« von der Schnittstelle »Einkaufen« erbt:

interface Verkaufen extends Einkaufen {
   function verkaufe (anzahl:Number):Void;
}

Eine Klasse, die diese Schnittstelle implementiert, muss dann aber neben den Methoden vom »Verkaufen« auch die Methoden vom »Einkaufen« umsetzen.

 << zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: ActionScript 1 und 2
ActionScript 1 und 2
bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern