Pues no, porque que tal si en algún punto de tu clase cambia self::$_instance por otra cosa, tendrías un error:
Código PHP:
Ver originalclass Singleton
{
private static $_instance = null;
private function __construct(){}
public static function getInstance()
{
if(!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
private function __clone() {}
public function hijackInstance()
{
self::$_instance = new stdClass();
}
}
$instance = Singleton::getInstance();
$instance->hijackInstance();
Corre ese código como esta, y reemplaza el chequeo por is_object y puedes ver donde tienes un problema.
La idea del patrón es que sea un punto único de entrada, digamos un constructor único por instancia.
Saludos.