Wenn Sie eine Fabrikklasse haben, die neue Objekte irgendeiner Art erstellt, und diese Faktorklasse ist ein Singleton, wie dies:
class Database_Factory extends Base_Factory {
private static $factory;
private $objects = array();
public function __get($profile) {
// check for object and return it if it's created before
}
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Derselbe Code wird immer dann wiederholt, wenn ein Objekt eine eigene Fabrik benötigt. Also habe ich beschlossen, diese Fabrikklasse abstrakt zu machen und nur spezifische Routinen für jede Fabrik zu implementieren. Aber PHP erlaubt es nicht, eine abstrakte Klasse zu instanziieren.
abstract class Base_Factory {
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Schwerwiegender Fehler: Die abstrakte Klasse Base_Factory kann nicht instanziiert werden
Was würden Sie tun?