Factory Method

Aus php bar
Wechseln zu: Navigation, Suche

Eine Factory ist ein Hilfsmittel zur Erzeugung von Objekten. Sie wird verwendet, wenn die zur Generierung des Objekts verwendete Klasse erst zur Laufzeit bekannt ist.

Implementierung

Eine Factory Methode könnte zum Beispiel folgendermaßen aussehen:

 class Meine_Klasse
 {
     static public function factory($className, $params = null)
     {
         if (! is_string($className) || ! strlen($className)) {
             throw new exception(
                 'Die zu ladende Klasse muss in einer Zeichenkette benannt werden');
         }
 
10         require_once $className . '.php';
11         return new $className($params);
12     }
13 }
14 
15 $params = array(
16     'param1' => null,
17     'param2' => null,
18 );
19 
20 $object = Meine_Klasse::factory('test_klasse_konkret', $params);


Beispiel aus PEAR::MDB2

In diesem Beispiel ist MDB2::connect() die factory-Methode und liefert ein Datenbank-Verbindungs-Objekt oder im Fehlerfall ein PEAR-Error-Objekt zurück.

 require_once 'MDB2.php';
 
 $dsn = 'pgsql://someuser:apasswd@localhost/thedb';
 $options = array(
     'debug' => 2,
     'result_buffering' => false,
 );
 
 $mdb2 = MDB2::connect($dsn, $options);
10 if (PEAR::isError($mdb2)) {
11     die($mdb2->getMessage());
12 }
13 
14 // ...
15 
16 $mdb2->disconnect();