Перед тем как мы рассмотрим паттерны Joomla: Factory и Singleton, разберем немного паттерны вообще.
Один из наиболее часто используемых паттернов — Iterator, описывающий выполнение одной задачи много раз в цикле. Joomla использует достаточно много паттернов, многие из которых сложнее чем Iterator.
Паттерн Factory — создающий паттерн (creational pattern), использующийся для создания и возврата объектов. Используется в случаях, когда согласно параметрам создаются объекты разных классов, часто подклассов одного абстрактного класса. В Joomla есть static-класс JFactory, наследующий factory-паттерн. Данный класс позволяет нам легко создавать глобальные объекты и получать к ним доступ.
Например:
$db=& JFactory::getDBO(); $user=& JFactory::getUser(); $document=& JFactory::getDocument();
Паттерн Singleton используется для создания только одного объекта указанного класса. Конструктор такого класса является protected или private при этом используется static-метод для создания класса. Многие классы Joomla используют псевдо-singleton паттерн для работы с объектами, в частности, static-метод getInstance(); в некоторых случаях JFactory используется для работы с этим методом. Классы которые наследуют этот метод, не всегда являются классами типа Singleton.
Имеет смысл использовать вышеперечисленное в иерархическом порядке: JFactory метод, getInstance(), нормальный конструктор (new).
В случаях, когда и JFactory и класс имеют методы для создания объекта, предпочтение стоит отдавать JFactory. Если класс предлагает более подходящий метод getInstance(), чем JFactory, конечно, можете использовать его.
Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">