Абстрактная фабрика - для чего?

гемоглобин

Новичок
Я отлично понимаю паттерн "Абстрактная фабрика" по примерам из книжки. Ну, мол, например для windows надо создавать одни объекты (окна, кнопки), для linux другие, поэтому выгодно держать специальный объект, который бы выдавал их по требованию и клиент не должен вообще знать какая ось сейчас используется. Это все здорово. Но я не понимаю, где А.Ф. можно применить в реальном веб приложении, почему-то никогда не возникало такой потребности.
Где вы используете этот паттерн?
 

Adelf

Administrator
Команда форума
гемоглобин
в PHP обычно не используют(я не видел). У нас есть autoload :)
и что-то вроде:
PHP:
$classname = 'Someclassname_Driver_' . ucfirst($driverType);
$this->driver = new $classname;
где $driverType - из конфига. Динамический язык все-таки.
 

Духовность™

Продвинутый новичок
Adelf
причем тут автолоад?

гемоглобин
Странный вопрос. Используем там, где этого требует задача. Вам задачки придумать?
 

гемоглобин

Новичок
Adelf
причем тут автолоад?

гемоглобин
Странный вопрос. Используем там, где этого требует задача. Вам задачки придумать?
Ну где вы последний раз использовали? Просто почему-то у меня никогда необходимость не возникала (скорее всего возникала, но я этого не понимал).
 

Mols

Новичок
хм... пока использую только параметризированные фабричные методы.
 

Adelf

Administrator
Команда форума
Духовность™
Ну, в общем, ты прав. Это не касается самого вопроса. Просто без автолоада довольно проблематично делать так, как указано в моем коде.
 

Mols

Новичок
craz
А вот хз.
Абстрактная фабрика - отдельный паттерн.
а в ПДО скорее всего параметризированный фабричный метод.
Хотя они и родственные, но всё же разные паттерны.
А вот в чем истинная соль отличий я тоже хз.
Не владею настолько.
 

craz

Нестандартное звание
craz
А вот хз.
Абстрактная фабрика - отдельный паттерн.
а в ПДО скорее всего параметризированный фабричный метод.
Хотя они и родственные, но всё же разные паттерны.
А вот в чем истинная соль отличий я тоже хз.
Не владею настолько.

не не не не abstract class Zend_Db_Adapter_Abstract - вот это не абстрактная фабрика?
 

Mols

Новичок
не не не не abstract class Zend_Db_Adapter_Abstract - вот это не абстрактная фабрика?
Та вроде не.
Какая ж там фабрика?
там просто общий функционал и интерфейс....
собсно там в описании так и сказано.
Class for connecting to SQL databases and performing common operations.
 

craz

Нестандартное звание
во я наю значит как
надо поиск по файлам abstarct fabric
 

Single

пилот капсулы
От практического программирования несколько далек но на сколько знаю этот паттерн у нас используют программисты в сервисе где логика для анонимных пользователей и имеющих учетную запись имеет от силы 0.001 общего кода.
 

Adelf

Administrator
Команда форума
Single
скорее всего там используется что-нибудь вроде Special Case.
 
Сверху