Si tuviera una clase de fábrica que crea nuevos objetos de algún tipo, y que la clase factroy es un producto único, de esta manera:Extender la clase Singleton abstracta
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;
}
}
Los mismos repite el código en cualquier momento en que necesita un objeto que es propia fábrica. Así que decidí hacer este resumen de clase de fábrica e implementar solo rutinas específicas para cada fábrica. Pero PHP no permite crear instancias de clases abstractas.
abstract class Base_Factory {
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Fatal error: No se puede crear una instancia de clase abstracta Base_Factory
¿Qué haría usted?
La pregunta es esencialmente: ¿cómo me libero de escribir esas funciones getInstance (y tal vez más adelante) en cada fábrica? –