Matti Mäkitalo: Abstrakte methoden praxistest

Beitrag lesen

Hi,

Für die Klasse wichtige Methoden sollten immer abstract definiert sein.
Eine Dummy Methode bietet sich bei einer Plugin Programmierung an, da sie Schreibarbeit erspart. Ein Beispiel:

Es gibt eine Methode save, die speichert ein Array

public function save()
{
    $this->_beforeSave( $arSaveDaten );
    //--- speichert Array
    $this->_afterSave( $arSaveDaten );
}

damit man die Methode _beforeSave nicht immer definieren muss und den Code zumüllt (es kann ja relativ vieler solcher Methoden geben), ist meine Empfehlung diese Methode nicht abstrakt zu definieren. Somit muss man sie bei einer Ableitung nicht definieren, wenn man sie nicht braucht.

Dein Klassendesign ist kaputt. Deine Klasse macht wahrscheinlich zu viel. Wenn die Funktionen zum funktionieren der Kindklassen notwendig sind, dann sind sie abstrakt zu definieren. Sind sie nur für einige Kinder, aber nicht alle notwendig, dann erben diese Kinder von einer (abstrakten) Zwischenklasse, welche diese Funktionen vorschreibt (besser: sie implementieren ein entsprechendes Interface).

Eine Klasse ist kein Eimer, in dem man alle Funktionen hineinwirft, die irgendwie zusammengehören. Wenn du das realisiert hast, werden deine Probleme sich auch in Luft auflösen.

Bis die Tage,
Matti