是否存在 __construct() 会被声明为公开的情况?
如果是这样,为什么?
在类中使用构建器模式时,以及为类添加静态工厂方法时,我也会使用私有构造函数。
两者都可以帮助您避免创建过多的构造函数,还可以帮助您创建具有有意义名称的构造函数。例如,而不是:
new Robot(2, 4, 255, 0, 0)
您可以使用构建器创建:
RobotBuilder.withNumberOfArms(2).withColor(255,0,0).withNumberOfEyes(2).build()
由于构建器位于类内部,因此只有它可以调用其私有构造函数。
对于静态工厂方法,您可以看到这些:
public static Robot createFourArmedRobot();
public static Robot createBlindRobot();
对于其他开发人员来说,比两个具有自定义参数的构造函数更有意义。(更多与 OOP 相关而不是 php)
通常我们将 __construct() 作为与设计模式相关的单例模式的私有,以了解更多关于它的信息,请访问此页面 - http://en.wikipedia.org/wiki/Singleton_pattern