phpbar.de logo

Mailinglisten-Archive

[php] Klassenverschachtelung

[php] Klassenverschachtelung

Ralf Eggert ralf at in-greece.de
Son Jan 9 11:49:40 CET 2005


Hallo Liste,

tut mir leid, dass ich die Ruhe an diesem schönen Sonntag stören muss,
aber ich hab da mal ne Frage.

Ich habe eine Haupt-Klasse coreWebsite, von der sich andere Klassen
(coreForm, coreList) ableiten. Das Ganze sieht in etwa so aus:

coreWebsite
|
+----> coreForm
|
+----> coreList

coreWebsite stellt die grundlegenden Methoden bereit. coreForm stellt
zusätzliche Methoden für Formularverarbeitung und coreList für die
Anzeige von Listen bereit. Das Ganze funktioniert auch prima.

Derzeit werden diese Klassen nur für ein einziges Projekt verwendet. Nun
möchte ich diese Klassen aber auch für andere Projekte wieder verwenden.
Meine Idee ist nun, jeweils neue abgeleitete Klassen einzurichten, in
denen dann die projektspezifisch geänderten Methoden enthalten sind.

coreWebsite
|
+----> localWebsite
|
+----> coreForm
|    |
|    +----> localForm
|
+----> coreList
     |
     +----> localList

Mein Problem ist nun, dass die in localWebsite projektspezifisch
geänderten Methoden, nicht in localForm verfügbar sind, weil localForm
ja von coreForm und nicht von localWebsite abgeleitet wird. Eine Klasse
lässt sich ja nie von zwei anderen Klassen ableiten.

Eine erste Idee war, die projektspezifisch geänderten Methoden in
localWebsite auch in localForm zusätzlich aufzunehmen. Dies möchte ich
aber vermeiden, weil ich dann ja redundaten Code hätte und bei
Änderungen aufpassen muss, dass es nicht zu Inkonsistenzen kommt.

Eine weitere Idee von mir war, dass ich die geänderten Methoden in
localWebsite in separaten Dateien vorhalte und innerhalb der Klassen
dann inkludiere. Aber ich weiss nicht, ob das so schlau ist.

Gibt es für solche Probleme ein entsprechendes Pattern, dass ich nicht
kenne?

Bin für jeden sachdienlichen Hinweis dankbar.

Noch einen schönen Sonntag.

Viele Grüsse,

Ralf

php::bar PHP Wiki   -   Listenarchive