Mega Code Archive

 
Categories / Php / Design Patterns
 

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()); ?>