Factory pattern Demo : Factory Pattern : Design Patterns PHP Source Code


PHP Source Code » Design Patterns » Factory Pattern »

 

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:

Follow Navioo On Twitter

PHP Source Code

 Navioo Design Patterns
» Factory Pattern