Funktionsaufruf von Klassen aus einem Array

Funktionsaufruf von Klassen aus einem Array

am 24.09.2006 00:15:45 von pugorg

Niels Braczek schrieb:
> Silvério schrieb:
>
>> ich habe ein ARRAY of classes, bei dem von einer Klasse aus
Funktionen einer anderen Klasse aufgerufen werden soll. Beispiel:
>>
>> class ID {
>> function getID() {
>> ...
>> }
>> }
>>
>> class Name {
>> function getName() {
>> [gesucht: Syntax um Funktion ID->getID() aufrufen]
>> }
>> }
>>
>> class Record {
>> var $fields;
>>
>> function Record() {
>> $this->fields[] = new ID;
>> $this->fields[] = new Name;
>> }
>> }
>>
>> Wie kann ich bei obigem Beispiel von Funktion getName in Klasse Name
aus die Funktion getID in Klasse ID aufrufen? Es bringt mir leider
nichts, die Funktion von Klasse Record aus aufzurufen, von wo aus es
kein Problem wäre.
>
> Wenn 'Name' 'ID' kennen muss, ist dein Klassenkonzept kaputt. 'Name' hat
> von 'Record' alles zu bekommen, was es wissen muss. Es geht 'Name' -- so
> wie du das hier skizziert hast -- nichts an, ob 'ID' überhaupt
> existiert, geschweige denn, direkt etwas von 'ID' zu wollen.
Niels, alle,
ich habe einen Tipp bekommen, mit dem ich evtl. das Problem lösen
könnte: eine Kommunikator-Funktion. Die soll in Record stehen und
Funktionen in den anderen Klassen, die im Array stehen, aufrufen. Die
Rückgabewerte werden stehen dann in der aufrufenden Klasse zur Verfügung.

Der Knackpunkt bei diesem Verfahren ist ob und mit welcher Syntax eine
Funktion aufruft, die in der Klasse steht, die ein Array enthält, in der
sich die Klasse mit der aufrufenden Funktion befindet. Geht so etwas?

Gruss
Silvério