Factory pattern Demo : Factory Pattern « Design Patterns « PHP






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

?> 

           
       








Related examples in the same category