Ich habe ein Objekt durch eine Fabrik gebaut, die meine Parameter aus der Url gelesen enthält.
Von diesem Objekt kann ich den Sprachparameter
$Sprache = $my_parameters->getLanguage();
$language ist NULL, wenn es nicht gesetzt wurde.
$language kann auch ungültig sein ($language->isValid() liefert false).
Um meine Seite zu erstellen, benötige ich also einige Parameter.
Die Seite wird auch durch eine Fabrik gebaut. Dann weiß ich, welche Parameter ich brauche, um sie zu erstellen. Wenn die Parameter fehlen, baue ich sie mit einem gültigen Standardwert entsprechend der angeforderten Seite.
An diesem Punkt, in die Seite Fabrik, wenn ein ungültiger Parameter haben, werfe ich eine Ausnahme.
Mein Seitenobjekt enthält ein Body-Objekt, das einen Sprachparameter benötigt. Ich weiß, dass meine Parameter gültig sind, wenn ich mein Body-Objekt erstelle.
In mein Körperobjekt rufe ich die Sprache
$Sprache = $my_parameters->getLanguage();
Zu diesem Zeitpunkt ** MUSS ** $language gültig sein. Ich überprüfe also erneut
$language = $my_parameters->getLanguage();
if( is_null( $language ) or !$language->isValid() ) {
throw new Exception( 'Language must be valid.' );
}
Wenn ich 4 Parameter brauche, habe ich 4 ifs die überprüfen, ob das Objekt nicht NULL und nicht ungültig ist.
Ich tue es, weil die Methode ist öffentlich wobei $language im body-Objekt verwendet wird.
Und das Körperobjekt kann außerhalb der Fabrik gebaut werden. Wer weiß...
Ist es richtig, in diesem Fall zu überprüfen?
Was sind die besten Praktiken dafür?