:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort! 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
|
Interface – Objektschnittstellen: Seite 1  |
|
SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
Vor allem bei umfangreichen PHP-Anwendungen kommt es äußerst selten vor, dass lediglich ein einzelner Entwickler daran arbeitet. Angenommen, Sie gehören zu einem Team von Entwicklern, bei dem jeder einzelne Entwickler an einem separaten Teil – d. h. einer anderen Klasse – einer umfangreicheren PHP-Anwendung arbeitet. Die meisten dieser Klassen stehen miteinander nicht in Beziehung. Dennoch müssen die verschiedenen Klassen miteinander kommunizieren können. Sie müssen also eine Schnittstelle oder ein Kommunikationsprotokoll definieren, das alle Klassen befolgen.
Eine Möglichkeit wäre, dass Sie eine Kommunikationsklasse erstellen, welche sämtliche Methoden definiert, und dann jede einzelne Klasse dieser übergeordneten Klasse erweitern oder von ihr erben lassen. Da die Anwendung jedoch aus unverwandten Klassen besteht, ist es nicht sinnvoll, sämtliche Klassen in eine gemeinsame Klassenhierarchie zu pressen. Die bessere Lösung ist das Erstellen einer Schnittstelle, in der die Methoden deklariert werden, die diese Klassen zur Kommunikation verwenden. Anschließend können Sie jede Klasse diese Methoden implementieren lassen, d. h. ihre jeweils eigenen Definitionen zur Verfügung stellen. Für eine erfolgreiche Programmierung sind in der Regel keine Schnittstellen erforderlich. Werden Schnittstellen sinnvoll eingesetzt, kann das Design Ihrer Anwendung effektiver, skalierbarer und leichter zu pflegen sein.
Schnittstellen – Definition
In der objektorientierten Programmierung sind Schnittstellen (engl. interfaces) mit Klassen vergleichbar, deren Methoden deklariert wurden, die aber sonst nichts anderes »tun«. Eine Schnittstelle setzt sich somit aus »leeren« Methoden zusammen. Eine andere Klasse kann die von der Schnittstelle deklarierten Methoden implementieren. Objektschnittstellen können auch als Sonderfälle von abstrakten Klassen gelten. Schnittstellen werden mit dem Schlüsselwort interface, gefolgt von einem Namen, deklariert und enthalten per Definition nur abstrakte Methoden. Auf die explizite Angabe von abstract bei Methoden kann verzichtet werden. Im Unterschied zu abstrakten Klassen werden Schnittstellen mit dem Schlüsselwort implements von einer Klasse implementiert.
Schnittstellen erstellen
Schnittstellen werden auf dieselbe Art und Weise erstellt wie Klassen. Schnittstellen deklarieren Sie mit dem Schlüsselwort interface. Darauf folgen der Name der Schnittstelle und dann die geschweiften Klammern, die den Körper der Schnittstelle definieren.
Innerhalb von Schnittstellen dürfen keine Eigenschaften enthalten sein, und von sämtlichen Methoden darf nur der »Kopf« geschrieben werden, direkt abgeschlossen mit einem Semikolon, statt der geschweiften Klammern.
Bei der Implementierung wird wie bei der Klassenvererbung vorgegangen, anstatt extends kommt jedoch das Schlüsselwort implements zum Einsatz.
<?php
interface einInterface {
public function machWas();
}
interface anderesInterface {
public function machWasAnderes();
}
class MeineKlasse implements einInterface, anderesInterface {
public function machWas() {
// ...
}
public function machWasAnderes() {
// ...
}
}
?>
Wie Sie sehen, kann eine Klasse eine beliebige Anzahl an Schnittstellen über das Schlüsselwort implements implementieren.
Da die Klasse MeineKlasse die Schnittstellen einInterface und anderesInterface implementiert, können Objekte dieser Klasse beispielsweise an Methoden übergeben werden, die als Parameter ein Objekt vom Typ MeineKlasse, einInterface oder anderesInterface erwarten, sämtliche dieser Typanforderungen kann ein solches Objekt erfüllen.
Abschließend habe ich noch ein vertiefendes praktisches Beispiel für Sie.
|
|
|
|
|


:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt! 
|