Посты по тегу "factory":

Pixel Чтобы добавлять в избранное, нужно авторизироваться

php / Шаблон проектирования Factory

<?php
class Example
{
    // Параметризированный фабричный метод
    public static function factory($type)
    {
        if (include_once 'Drivers/' . $type . '.php') {
            $classname = 'Driver_' . $type;
            return new $classname;
        } else {
            throw new Exception ('Драйвер не найден');
        }
    }
}

//Использование
interface Driver_Interface {
}

class Drivers_MYSQL_PDO implements Driver_Interface {
}

$db = Example::factory("MYSQL_PDO");

?>

Единственным уточнением может быть введение единого интерфейса для всех классов из папки 'Drivers/', а также модификатора private или protected для конструктора класса Example: private __construct Example(){} Взято с http://www.php.net/manual/ru/language.oop5.patterns.php
2009-01-12 15:18:32
Pixel Чтобы добавлять в избранное, нужно авторизироваться

На правах рекламы

Icon-rating-openIcon-rating-openIcon-rating-openIcon-rating-openIcon-rating-open
2012-02-07 03:05:48