PHP: базовые паттерны и алгоритмы. Singleton

PHP patternsВ последнее время остро встал вопрос смены места работы, в связи с чем пришлось вспоминать и изучать много вещей, которые любят спрашивать интервьюверы на собеседованиях. После нескольких фейлов на элементарных вещах, я решил написать серию статей о базовых понятиях, которые должен знать каждый программист. В основном, тематика статей будет касаться паттернов и алгоритмов. Аудитория — новички или лентяи вроде меня, которые за несколько лет программирования так и не удосужились прочесть ни одной книги по архитектуре приложений.

Итак, паттерн Singleton. Данный паттерн применяют в тех случаях, когда необходимо гарантировать 2 вещи: доступ к объекту из любого места приложения и наличие только одного экземпляра класса. Яркий пример — класс настроек приложения, ибо настройки неизменны и используются в различных частях приложения.

class Settings {
  private static $_instance = null;
  private function __construct() {

  }
  protected function __clone() {

  }

  static public function getInstance() {
    if(is_null(self::$_instance))
    {
       self::$_instance = new self();
    }
    return self::$_instance;
  }
}

Реализация паттерна достаточно проста — мы проверяем наличие объекта класса, и если его нет — возвращаем новый. Приватный конструктор ограничивает реализацию getInstance(), а протектед __clone() — ограничивает клонирование объекта.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s