globe: Abstraktion

Beitrag lesen

n'abend,

Dann muss ich dokumentieren und kann es nicht erzwingen, dass nur die Methoden der (in meinem Fall abstrakten) Elternklasse benutzt werden sollen, damit in Hinblick auf die Wartbarkeit das Objekt der Kindklasse ausgetauscht werden kann.

Das würde ich so nicht sagen. Erzwingen kann man so ziemlich vieles - auch wenn das oft weder elegant noch sinnvoll ist.

Du könntest durchaus alle Methoden protected setzen (php != java; protected bedeutet in java, dass das ganze Package Zugriff hat, private nur die Klasse und Kindklassen. In PHP bedeutet private, dass nur die Klasse selbst Zugriff hat, sollen auch erbende Klassen das Privileg des Zugriffs haben, muss die Methode protected sein). In der Kindklasse hast du dann an sich nur noch Methoden, die von außen gar nicht aufrufbar sind. In der Elternklasse könntest du dann mittels __call() den Zugriff auf bestimmte Methoden erlauben. Auf diese Art und Weise könntest du den externen Zugriff auf weitere (protected!) Methoden der Kindkassen tatsächlich verwehren - mit welchem Sinn und Zweck auch immer...

P.S.: Beim Suchen nach der richtigen Doku-Seite bin ich über __sleep(), __wakeup() und gestolpert, die ich zuvor nicht kannte. Da soll nochmal einer behaupten anderen Helfen wäre vertane Zeit...

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|