在什么情况下应该将类构造函数设为私有

2022-02-22 00:00:00 oop constructor php

可能的重复项:
In a PHP5 class, when does a private constructor get called?

我最近一直在阅读有关OOP的文章,遇到了这个私有构造函数场景。我在谷歌上搜索了一下,但找不到任何与PHP相关的东西。

在PHP中

  • 何时必须定义私有构造函数?
  • 使用私有构造函数的目的是什么?
  • 使用私有构造函数的优缺点是什么?

解决方案

何时必须定义私有构造函数?

class smt 
{
    private static $instance;
    private function __construct() {
    }
    public static function get_instance() {
        {
            if (! self::$instance)
                self::$instance = new smt();
            return self::$instance;
        }
    }
}

使用私有构造函数的目的是什么?

它确保一个类只能有一个实例,并提供到该实例的全局访问点,这在Singleton模式中很常见。

使用私有构造函数的利弊是什么?

  • Are Singletons really that bad?

  • What is so bad about singletons?

相关文章