Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  PHP und OOP
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Mehrfachvererbung durch Aggregation




Innerhalb von PHP stellte man oftmals die Notwendigkeit fest, Klassen zu erweitern oder anzupassen. Was, wie Sie bereits erfarhen haben auch als Vererbung bezeichnet wird. Beim ursprünglichen Objekt, von dem geerbt wurde, spricht man nun von einer Ober- oder Superklasse. Eine aus der Sprache C++ bekannte Methode erlaubt es, dass eine abgeleitete oder geerbte Klasse mehrere Basisklassen besitzen kann. Dabei handelt es sich um die Möglichkeit, parallel, also gleichzeitig, von zwei Klasseneigenschaften zu erben. In diesem Zusammenhang wird dann oftmals von Mehrfachvererbung (multiple inheritance) gesprochen. Eine allgemeine akzeptierte Lösung bildete die Aggregations-Methode, die ebenfalls eine Mehrfachvererbung von Klassen durch Zusammenführen der Eigenschaften und Methoden zur Laufzeit ermöglicht.

Mit den Aggregationsfunktionen lässt sich die Mehrfachvererbung von Klassen durch Zusammenführen der Eigenschaften und Methoden von Objekten zur Laufzeit wie folgt erreichen:



<?php

class ErsteKlasse {
    function 
ausgabe_a() {
        print 
"ErsteKlasse::ausgabe_a() aufgerufen.<br>";
    }
}

class 
ZweiteKlasse {
    function 
ausgabe_b() {
        print 
"ZweiteKlasse::ausgabe_a() aufgerufen.<br>";
    }
}

$objekt = new ErsteKlasse();
aggregate($objekt'ZweiteKlasse');

$objekt->ausgabe_a();
$objekt->ausgabe_b();

?>




Ausgabe



ErsteKlasse::ausgabe_a() aufgerufen.
ZweiteKlasse::ausgabe_a() aufgerufen.



Neben der aggregate()-Funktion, die sämtliche Eigenschaften und Methoden der Klassen in einer Objektinstanz zusammenführt, besteht mit den Funktionen:
. aggregate_properties()
. aggregate_properties_by_list()
. aggregate_properties_by_regex() bzw. aggregate_methods()
. aggregate_methods_by_list()
. aggregate_methods_by_regex()

die Möglichkeit, die zu vereinigenden Eigenschaften bzw. Methoden auszuwählen.

Achtung: Die Aggregation-Funktion ist in PHP 4.2 eingeführt worden und als experimentell zu bezeichnen. Die Implementierung der Aggregation-Funktion fügt sich daher nicht nahtlos in das übrige OOP Konzept von PHP ein. Funktionen wie beispielsweise get_class() oder is_a() können kein korrektes Ergebnis liefern, wenn sie auf ein aggregiertes Objekt angewandt werden.



 


Optimierung durch parent
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de