Я начал с составления вопроса: «Как лучше всего выполнить модульное тестирование на конструкторе (например, __construct () в PHP5)», но при чтении связанных вопросов я увидел несколько комментариев, предположить, что установка переменных-членов или выполнение каких-либо сложных операций в конструкторе не допускаются.
Конструктор для рассматриваемого класса принимает параметр, выполняет с ним некоторые операции (проверяет, прошел ли он анализ кода и, при необходимости, преобразовывает его), а затем сохраняет его в переменной-члене.
Я думал, что преимущества такого подхода были:
1) этот код клиента всегда будет
наверняка иметь значение для этого
переменная-член всякий раз, когда объект
этого класса создается, и
2) сохраняет шаг в коде клиента
(один из которых может быть
пропущено), например,
$Thing = new Thing;
$Thing->initialize($var);
когда мы могли бы просто сделать это
$Thing = new Thing($var);
и покончим с этим.
Это нет-нет? Если так, то почему?