Класс с private __construct

lamerz

Новичок
Привет.

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

PHP:
....................


    /**
     * @return ArgvParser
     */
    public static function getInstance()
    {
        if (self::$instance === null)
            self::$instance = new self();
        return self::$instance;
    }

    private function __construct()
    {
        $this->arguments = $this->parseEnvironmentArguments();
    }

....................
Обратил внимание на

PHP:
private function __construct()
    {
        $this->arguments = $this->parseEnvironmentArguments();
    }
Т.е. просто так объект не создашь.

Создать можно с помощью статического метода getInstance() .

Вопрос. С какой целью это было сделано? Замечаю такой подход уже не в первый раз.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Для того, что бы нельзя было создать другой экземпляр объекта, а всегда обращаться к одному и тому же. Ходят упорные слухи, что статика вообще и синглтоны в частности — не труЪ-ООП. Сам я лично не очень им верю, но это моя имха, и я ее никому не предлагаю.
 
Сверху