hio,
weil mir solangsam der Schädel platzt, muss ich nun einfach mal in die Runde frage und ein paar Anregungen und Meinungen einholen.
Ein paar kleine Klassen, die ich schon mal programmiert hatte in PHP will ich jetzt zu einem, nennen wir es Framework zusammensetzen.
Diese Klassen sollen nun erstmal so weit wie möglich eigenständige Module sein, die zwar teilweise auf andere Klassen angewiesen sind, aber soweit möglich auch ohne diese auskommen.
ein beispiel, es gibt eine fileUpload-Klasse, die hat die Aufgabe eine Datei die per POST hochgeladen wurde in ein bestimmtes Verzeichnis zu verschieben. Nun gibts verschiedene Filter und Regeln, die man definieren kann um zu entscheide wird die Datei akzeptiert oder nicht.
So weit so gut, nun hab ich entschieden diese um eine Klasse errorReporting zu erweitern, welche Fehlermeldungen und Ereignismeldungen verwaltet. Weiter gibts eine Klasse die Beispielsweise Thumbgrafiken erzeugen kann.
Meine erste Idee war folgende. Die errorReporting-Klasse als Basisklasse fast aller Klassen zu verwenden, da Fehler überall auftreten können, die thumbnails selbst sind hingegen nicht so elementar für meine fileUpload-Klasse, deswegen erzeuge ich nach Bedarf eine Instanz davon.
also,
class fileUpload extends errorReporting {
function createThumb() {
$this->createThumb = new thumbnail();
....
}
Nun ist aber eigentlich auch so, das ja meine fileUpload-Klasse selbst nicht wirklich davon abhängig ist Fehlermeldungen speichern zu können. So mache ich sie jedoch abhängig davon. Wäre es vielleicht nicht sinnvoller auch die errorReporting-Klasse nur bei Bedarf zu Instanzieren?
Macht es Sinn in der Praxis, alle Klassen die man zwar brauchen könnte, jedoch nicht unbedingt benötigt in einer Klasse bei Bedarf zu Instanzieren? So überlegt könnte ich ja eigentlich fast alles so handhaben, da beinahe jede Klasse bis zu einem gewissen Punkt alleine klar kommt. Oder leidet die übersichtlichkeit und Transparenz irgendwann darunter?
Ich mache mir gerade megaviele Gedanken, wie ich Klassen so gestalten kann, die sie so eigentständig wie möglich funktionieren und welche Aufbau wirklich sinn macht. Vielleicht kann jemanden ein paar Tipps geben, der sich schon intensiver damit auseinandergesetzt hat, oder kennt ein Tutorial das nicht auf Einsteigerniveau liegt, davon gibts genug.
gl & hf
Thorsten