2013-02-23 2 views
0

Я пишу приложение с примерно 10 классами для разных предметов. У меня есть два варианта их создания.
1- Наличие одного файла (или базового класса) для создания всех экземпляров. Таким образом, я уверен, что однажды создал экземпляры всех классов и могу использовать их везде. Таким образом я могу использовать __outoload() вместо включения файлов.Классы создания объектов в PHP OOP

2- Создавать необходимый класс в каждом файле отдельно. Абсолютно таким образом, мне нужно включить разные файлы.

Какой из этих способов лучше? Зачем?

+1

Я не понимаю вопрос. Как объект-экземпляр имеет какое-либо отношение к тому, где код сохраняется на диске? Это вопрос об автозагрузке в сравнении с явным включением? – erisco

+3

Вам, вероятно, нужно искать то, что на самом деле означает «экземпляр», и перефразировать ваш вопрос, чтобы иметь больше смысла. – Niko

+0

@Niko, Почему, по-вашему, я не знаю, что означает инстанцирование? Мне нужно знать, как я могу сделать это, чтобы получить лучшую производительность. –

ответ

2

Это зависит от множества факторов, например, насколько загружен ваш сайт. Вы не хотите загружать кучу ненужных объектов, если ваш сайт сильно использует. Существуют разные мнения о том, где создавать объекты PHP, но, по моему опыту, лучше всего include() (или require() или что-то еще), а затем создать экземпляр объекта внутри его файла класса. Так что я буду include('class_A.php');, а затем внутри класса_A.php я буду $object = new Object()'. Обратите внимание на то, что функции _once() (include_once() и require_once()) стоят значительно больше, чем обычные версии ванили.

0

Используйте решение 2, по одному файлу на класс и используйте php autoload.

0

Factory Pattern - ваш выбор.

У вас есть мастер-класс (фабричная), которые знают, как создать экземпляр каждый из ваших классов

+0

Я бы сказал, что фабрика - довольно грязное решение для чего-то, что получило собственное собственное управление через PHP. – MarcinWolny

+0

Заводская схема совершенно законна в тех случаях, когда вам нужно создавать экземпляры внутри других классов для предотвращения жесткой связи. @MarcinWolny – PeeHaa

0

Это всегда лучше, чтобы иметь их в отдельных файлах. Это делает код в 1000 раз более понятным.

Для загрузки PHP файлов, чем использовать __autoload (как вы видите: PHP даже содержит встроенную поддержку для этой ситуации)

Смежные вопросы