PHP шаблоны: Singlton (генерация объектов)

PHPКомментариев нет

Проблема:

  • требуется объект который будет доступен во всей системе и из любого места
  • это должна быть не глобальная переменная, так как глобальные переменный это плохой вариант решения проблемы
  • в нашей системе должен быть только 1 экземпляр объекта

Решение:

<?php

class Singlton {
    private $props;
    private $instance;

    private function __construct(){}

    public static function getInstance(){
        if(empty(self::$instance)){
           self::$instance = new Singlton();
        }
        return self::$instance;
    }

    public function setProps($key, $value){
        $this->props[$key] = $val;
    }

    public function getProps($key){
        return $this->props[$key]
    }
}

Плюсы:

Синглтон решение это на много лучше использования глобальных переменных. В результате мы получаем защищенный объект. Важным моментом является возможность не передавать объект от класса к классу, а использовать его в нужных местах, а не постоянно тянуть за собой.

Минусы:

Злоупотреблять данным способом не стоит, так как мы уменьшает количество логических(визуальных) связей в системе, уменьшаем значимость интерфейсного подхода. Использование данного шаблона мотивирует программиста пойти в обход основной системы(логики) приложения. А так же при большом использовании данного паттерну мы рискуем получить сложные связи и зависимости между классами.


Комментарии закрыты!