tach community,
ich versuche immer noch meinen php4 code so objektorientiert
wie moeglich zu gestalten. ich habe eine grundsaetzliche frage.
ich habe mir eine art interface gebaut. in dem stehen alle methoden, die in meinem script jemals aufgerufen werden. ich habe getrennt nach database,functions und format klassen. es funktioniert sehr gut. nur wie mach ich s jetzt richtig, wenn die klassen eine methode untereinander benutzten muessen. mache ich ihnen jeweils das interface bekannt? erben alle klassen vom interface? das ist doch falsch. hier ein mini beispiel zum verdeutlichen meines ansatzes:
INTERFACE
include\_once('functions.php');
include\_once('format.php');
include\_once('database.php');
**class INTERFACE** {
var functionsObj;
var databaseObj;
var formatObj;
**_function INTERFACE()_**{
$this-\>functionsObj = new functions();
$this-\>formatObj = new format();
$this-\>databaseObj = new database();
}
**_function getData()_**{
$dbObj = $this-\>databaseObj;
return $dbObj-\>getData();
}
}
database.php
class database{
function getData(){
**HIER KOMMT MEIN PROBLEM**
Ich moechte genau an dieser Stelle
in der Klasse function() eine methode
functions-\>formatThis() aufrufen.
}
}
mein problem … ich koennte das obj jeder methode vom interface
aus uebergeben. aber das finde ich haesslich. oder macht man das so?
ebenso koennte ein neues object der jedweiligen klasse instanziieren… bin mir aber auch nicht sicher , ob das der richtige weg ist. die moeglichkeit functions::formatThis() ist haesslich und nicht OO …
es wird wohl wieder mein vererbungsproblem sein…
nur wie mach ichs richtig… wenn klasse database() methoden aus format() aufrufen soll und auch umgekehrt?
meine derzeitige loesung ist die, dass ich in JEDER klasse
die anderen klassen im konstruktor instanziiere. ist das so richtig?
eigentlich nicht… oder? also… genauso wie ich es im interface gemacht habe.
danke fuer die hilfe.
grusz
pixelKoenig