У меня есть объект, построенный через фабрику, содержащую мои параметры, считанные из URL.
Из этого объекта я могу получить языковой параметр
$ language =
$ My_parameters-> GetLanguage ();
$ язык равен NULL, если он не был установлен.
$ language также может быть недействительным ($ language-> isValid () возвращает false).
Итак, для создания моей страницы мне нужны некоторые параметры.
Страница также создается через фабрику. Тогда я знаю, какие параметры мне нужны для его построения. Если он пропускает параметры, я строю их с допустимым значением по умолчанию в соответствии с запрашиваемой страницей.
На этом этапе в фабрику страниц, если есть недопустимый параметр, я выбрасываю исключение.
Мой объект страницы содержит объект body, для которого требуется параметр языка. Я знаю, что мои параметры действительны, когда я строю объект тела.
В объект моего тела я получаю язык
$ language =
$ My_parameters-> GetLanguage ();
На данный момент $ language ** ДОЛЖЕН ** быть действительным.
Поэтому я проверяю снова
$language = $my_parameters->getLanguage();
if( is_null( $language ) or !$language->isValid() ) {
throw new Exception( 'Language must be valid.' );
}
Если мне нужно 4 параметра, у меня есть 4 ifs , которые проверяют, не является ли объект NULL и недействительным.
Я делаю это, потому что метод является общедоступным , где $ language используется в объекте body.
И корпус объекта может быть построен за пределами завода. Кто знает ...
Правильно ли проверить в этом случае?
Каковы лучшие практики в этом отношении?