Объясните, пожалуйста, часть кода паттерна Singletone (PHP), сам не разобрался
уважаемые специалисты! Не могу понять код ниже. Может, у кого-то найдется минутка по строчке объяснить..? Возникают следующие вопросы: 1) Зачем в if ( empty(self::$instance) ) программа проверяет эту ссылку self::$instance на существование.. и разрешает действие только, если "empty". Зачем нужно вот это: self::$instance = new self() и вот это: return self::$instance?
<?php class Singleton {
private static $instance;
private function __construct() { /* ... @return Singleton */ }
private function __clone() { /* ... @return Singleton */ }
private function __wakeup() { /* ... @return Singleton */ }
**public static function getInstance() {
****if ( empty(self::$instance) ) {
self::$instance = new self();
}
return self::$instance;****
}
public function doAction() { } } /* Применение*/ Singleton::getInstance()->doAction(); ?>**