getInstance() sur une classe fille
Posté : 13 févr. 2008, 14:36
Bonjour,
je voudrais implémenter le design pattern singleton dans une classe, avec un basique getInstance() comme ceci :
il y a un moyen de gérer ce problème, autrement qu'en mettant le getInstance() en série dans chaque classe fille ?
Merci
je voudrais implémenter le design pattern singleton dans une classe, avec un basique getInstance() comme ceci :
public static function getInstance()
{
if (is_null(self::$_instance))
{
self::$_instance = new self();
}
return (self::$_instance);
}
Le problème qui se pose c'est que ma classe est une classe abstraite, et que le self() pointe vers cette classe au lieu de pointer vers les enfants. Je vais faire plus simple :
abstract class Papa
{
private static $_instance;
abstract public function hello();
public static function getInstance()
{
if (is_null(self::$_instance))
{
self::$_instance = new self();
}
return (self::$_instance);
}
}
class Fille extends Papa
{
public function hello()
{
echo 'Hello';
}
}
Fille::getInstance()->hello();
ben en gros ça marche pas, self() représente Papa().il y a un moyen de gérer ce problème, autrement qu'en mettant le getInstance() en série dans chaque classe fille ?
Merci