PHP/Design Patterns/Factory Pattern — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 07:03, 26 мая 2010
Factory pattern Demo
<?php
class ClassFactory{
private $registeredClasses = array();
static private $instance = NULL;
private function __construct() {}
static function getInstance(){
if(self::$instance == NULL){
self::$instance = new ClassFactory();
}
return self::$instance;
}
function registerClass($id, $creator_func){
$this->registeredClasses[$id] = $creator_func;
}
function createObject($id, $args) {
if(!isset($this->registeredClasses[$id])){
return(NULL);
}
return($this->registeredClasses[$id]($args));
}
}
function MyClassCreator(){
return "creator";
}
$factory = ClassFactory::getInstance();
$factory->registerClass(1, "MyClassCreator");
$instance = $factory->createObject(1, array());
?>