• 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]
        }
    }

    Плюсы:

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

    Минусы:

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


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