Заводские методы и частные переменные

Я использую фабричный класс для создания экземпляров другого класса, скажем, класса Product.

Как мне установить частные переменные в классе Product из фабричного класса? Должен ли я вообще делать это?

Я планирую использовать общедоступные методы установки, а затем заморозить или заблокировать экземпляр, как только я закончу с ним. Но у меня такое чувство, что это неправильный способ делать что-то.

Как вы подойдете к такой проблеме?

РЕДАКТИРОВАТЬ:

Да, я хотел бы использовать метод неизменяемых объектов @derekerdmann. Но я, наверное, сначала должен дать больше информации.

Я пишу синтаксический анализатор на php для HTML-подобного языка, чтобы вы получали узлы, которые, в свою очередь, могут содержать другие узлы. Итак, фабрика - это парсер, создающий иерархию узлов. Если вам интересно, вот код http: // http: //bazaar.launchpad.net/~rhlee/band-parser/dev/view/head: /src/bands.php

Дело в том, что что я не знаю, какими будут дочерние узлы, пока не перейду к остальной части документа. Поэтому я не могу перейти к конструктору.

Иногда мне кажется, что хотя я хочу, чтобы его читали только после синтаксического анализа, почему это должно быть? Я беру для примера парсер DOMDocument от php. Вы можете проанализировать HTML-файл, а затем изменить его структуру. Однако это сделано для того, чтобы вы могли снова воспроизвести HTML с новыми изменениями.Мой синтаксический анализатор является односторонним, поэтому необходимости редактировать структуру после синтаксического анализа не существует.

5
задан rhlee 9 December 2011 в 03:36
поделиться