Есть ли какой-то профит в использовании объекта Singleton вместо статических атрибутов и методов?
Singleton:class One {
private $var;
private $instance;
/** Пропущена защита конструкторов, клонов и wakeup`ов. */
static public function Instance () {
if ( is_null( $this->instance ))
$this->instance = new static;
return $this->instance;
}
public function set ( $var ) {
$this->var = $var;
}
public function get () {
return $this->var;
}
}
One::Instance()->set(2);
echo One::Instance()->get();
Статика:class Two {
static private $var;
static public function Set ( $var ) {
self::$var = $var;
}
static public function Get () {
return self::$var;
}
}
Two::Set(2);
echo Two::Get();
Я везде использую вариант «Two», но вдруг я что-то важное упускаю?