Singleton Pattern (single — единственный [англ.] ton — мода, стиль [англ.]) — один из наиболее известных шаблонов проектирования. Почти в любой объктно-ориентированной программе обычно существует один-два объекта, которые инициализируются в начале, и используются на всем протяжении работы приложения. Нет нужды каждый раз создавать объект класса, достаточно создать один экземпляр класса, в начале работы программы, и пользоваться им.
В РНР5 singleton определяется так:
<?php
class Singleton {
private static $instance;
/**
* Защищаем от создания через new Singleton
* @return Singleton
*/
private function __construct() {}
/**
* Защищаем от создания через клонирование
* @return Singleton
*/
private function __clone() {}
/**
* Защищаем от создания через unserialize
* @return Singleton
*/
private function __wakeup() {}
/**
* Возвращает единственный экземпляр класса
* @return Singleton
*/
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Делаем что-нибудь
*/
public function doAction() {}
}
?>
Пример использования
<?php Singleton::getInstance()->doAction(); ?>
Преимущества данного метода очевидны:
- Мы используем ссылки на один и тот же экземпляр класса в разных частях проекта. Таким образом не нужно создавать новый объект каждый раз когда мы хотим воспользоваться каким-то методом — просто пользуемся ссылкой.
- Теперь не нужно передавать объект как аргумент, чтоб все части программы были «в курсе» о текущем состоянии объекта. Все ссылки указывают на один объект.
Похожие публикации:
- Выбираем окончания для существительных с количественным числительным
В русском языке существительные с количественным числительными могут быть в единственном, двойственном и множественном числе: один голос, два голоса, пять...
