Se tu avessi una classe factory che crea nuovi oggetti di qualche tipo, e che la classe factroy è un Singleton, come questo:Estendere classe astratta Singleton
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;
}
}
Le stesse ripetizioni di codice in qualsiasi momento in cui un oggetto ha bisogno di un proprio fabbrica. Così ho deciso di rendere questa classe astratta e implementare solo routine specifiche per ogni fabbrica. Ma PHP non consente di creare un'istanza di classe astratta.
abstract class Base_Factory {
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Fatal error: Impossibile istanziare classe astratta Base_Factory
Cosa faresti?
La domanda in sostanza è: come posso liberarmi dallo scrivere quelle funzioni getInstance (e forse più tardi in più) in ogni fabbrica? –