Довольно часто в книжках и в интрнете я встречал такой термин как фабрика классов (ClassFactory), но ни про то что это такое, ни для чего это надо толком ни где не написано, а где написано там ни чё не понятно. Я бы хотел узнать поподробнее о том что это такое и областях его применения. Желательно примерчик привести. Спасибки.
Это такой класс, который в конструкторе принимает набор параметров в соответствии с которым создаёт и возвращает по ссылке экземпляр класс наиболее соответствующий переданным параметрам. Подразумевается, что возвращаемые классы поддерживают один и тот же интерфейс. Классической областью применению является выбор драйвера работы с СУБД или вывода информации на устройство вывода. ПС. Лично я не понимаю, зачем для этого нужен отдельный класс, я использую процедуру, выполняющую туже работу, т.к. руководствуюсь принципом - если нет необходимости использования чего-то большего, надо обойтись меньшим.
Ну в общих чертах ясно. Дело в том, что я сейчас пытаюсь написать свою CMS. У меня есть куча всяких классов (ну там для работы с почтой, базы даных, фтп и т.д.), перед использованием которых нужно подключть файлик с классом и собственно создать экземпляр. Просто хотелось бы что бы это всё делалось проще, к примеру: $class = createClass('db', 'mysql'); без всяких там include или require. Или что-то в этом роде, а как сделать это я не знаю. Так в голове прикинул, вроде для этого и предназначен ClassFactory ))). Может посоветуете что-нибудь?
ohh...again?, идея с $class = createClass('db', 'mysql'); смотрится не плохо, если нравится, то вперёд. Только боюсь, что от inc* и req*, окончательно избавиться не получится. Если подойти к вопросу глобально, то перечень необходимых компонентов в большинстве случаев можно точно определить на уровне модуля. Следовательно система где-то должна хранить описание модуля с перечнем необходимых ему компонентов, который используется для автоматического их подключения при вызове данного модуля.