Я использую фабричный класс для создания экземпляров другого класса, скажем, класса Product.
Как установить частные переменные в классе Product из фабричного класса?Должен ли я вообще делать это?
Что я планирую сделать, так это использовать методы открытого сеттера, а затем заморозить или заблокировать экземпляр, как только я закончу с ним.Но я чувствую, что это неправильный способ делать вещи.
Как бы вы подошли к такой проблеме?
РЕДАКТИРОВАТЬ:
Да, я хотел бы использовать @ derekerdmann'sметод неизменяемых объектов.Но я, вероятно, сначала должен дать больше информации.
Я пишу парсер на php для HTML-подобного языка, чтобы вы получили узлы, которые, в свою очередь, могут содержать другие узлы.Таким образом, фабрика является синтаксическим анализатором, создающим иерархию узлов.Если вам интересно, вот код http://http://bazaar.launchpad.net/~rhlee/band-parser/dev/view/head:/src/bands.php
Дело в том, что я не знаю, какими будут дочерние узлы, пока не пройдусь по остальной части документа.Поэтому я не могу перейти к конструктору.
Иногда я думаю, что, хотя я хочу , чтобы он читался только после разбора, почему это должно быть?Я беру например парсер DOMDocument от php.Вы можете проанализировать HTML-файл, а затем все еще изменить структуру.Однако это так, что вы можете снова воспроизвести HTML с новыми изменениями.Мой синтаксический анализатор является односторонним анализатором, поэтому необходимость в редактировании структуры после синтаксического анализа отсутствует.