Schlagwort-Archiv: instanzierung

Named Constructor

oop clean code named constructor Um eine Methode leicht verständlich zu machen, gibt es viele Möglichkeiten. Man kann die Parameter benennen oder den Methodennamen selbst dazu nutzen. Hat man zwei Methoden, die fast das Selbe machen, dabei aber unterschiedlich Parameter erwarten, kann man dies anhand des Namens deutlich machen:

class Date
{
    public function setTimestamp($value)
    {
        // ...
    }

    public function setAtomFormattedDate($value)
    {
        // ...
    }

    public function setRssFormattedDate($value)
    {
        // ...
    }

    
    // ...
    
}

Was aber macht man, wenn man den Wert schon im Konstruktor übergeben will? Weiterlesen

(Zu) viele Parameter

oop clean code parameter

Oft entwirft man Methoden, die viele Parameter benötigen. Nachdem noch 1-2 Features zu der Klasse hinzugefügt wurden, stellt man dann fest, dass es eindeutig zu viele Parameter geworden sind. Folgende Methode dient uns als Beispiel:

public function send(
    $fromStreet, $fromPostalCode, $fromCity, $fromCountry,
    $toStreet,   $toPostalCode,   $toCity,   $toCountry
) {
    //..
}

Das mag bei der Definition noch einigermaßen übersichtlich sein, doch spätestens bei der Nutzung der Methode geht die Übersicht verloren (und das obwohl die Reihenfolge der Parameter sich hier einfach ableiten lässt):

$obj->send('Musterstraße 74', '22041', 'Hamburg', 'Deutschland', 'Musterweg 42', '8471', 'Leibnitz', 'Österreich');

Weiterlesen