За последние 24 часа нас посетили 21680 программистов и 1018 роботов. Сейчас ищут 735 программистов ...

ClassFactory - Что и как?

Тема в разделе "PHP для новичков", создана пользователем ohh...again?, 28 мар 2006.

  1. ohh...again?

    ohh...again? Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    39
    Симпатии:
    0
    Довольно часто в книжках и в интрнете я встречал такой термин как фабрика классов (ClassFactory), но ни про то что это такое, ни для чего это надо толком ни где не написано, а где написано там ни чё не понятно. Я бы хотел узнать поподробнее о том что это такое и областях его применения. Желательно примерчик привести. Спасибки.
     
  2. ONK

    ONK Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Это такой класс, который в конструкторе принимает набор параметров в соответствии с которым создаёт и возвращает по ссылке экземпляр класс наиболее соответствующий переданным параметрам.
    Подразумевается, что возвращаемые классы поддерживают один и тот же интерфейс. Классической областью применению является выбор драйвера работы с СУБД или вывода информации на устройство вывода.

    ПС. Лично я не понимаю, зачем для этого нужен отдельный класс, я использую процедуру, выполняющую туже работу, т.к. руководствуюсь принципом - если нет необходимости использования чего-то большего, надо обойтись меньшим.
     
  3. ohh...again?

    ohh...again? Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    39
    Симпатии:
    0
    Ну в общих чертах ясно. Дело в том, что я сейчас пытаюсь написать свою CMS. У меня есть куча всяких классов (ну там для работы с почтой, базы даных, фтп и т.д.), перед использованием которых нужно подключть файлик с классом и собственно создать экземпляр. Просто хотелось бы что бы это всё делалось проще, к примеру: $class = createClass('db', 'mysql'); без всяких там include или require. Или что-то в этом роде, а как сделать это я не знаю. Так в голове прикинул, вроде для этого и предназначен ClassFactory ))). Может посоветуете что-нибудь?
     
  4. ONK

    ONK Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    ohh...again?, идея с $class = createClass('db', 'mysql'); смотрится не плохо, если нравится, то вперёд. Только боюсь, что от inc* и req*, окончательно избавиться не получится. ;)
    Если подойти к вопросу глобально, то перечень необходимых компонентов в большинстве случаев можно точно определить на уровне модуля.
    Следовательно система где-то должна хранить описание модуля с перечнем необходимых ему компонентов, который используется для автоматического их подключения при вызове данного модуля.