PHP/Design Patterns/Factory Pattern
Версия от 13:37, 26 мая 2010; (обсуждение)
Factory pattern Demo
<source lang="html4strict">
<?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()); ?>
</source>