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());
?>
|
|
|
|
|
HTML code for linking to this page:
|