1

我有一个基本问题:

当我开发 PHP 时,我经常想知道,什么时候使用合理, exampleclass::getInstance() 什么时候使用new exampleclass()

我什么时候应该使用哪一个?它们之间的最大区别是什么?我只想从那个问题中找出“最佳实践”。

谢谢你的帮助!

4

2 回答 2

1

通常,在Singleton 模式getInstance()的情况下使用,即当您需要始终使用相同的对象实例时。在这种情况下,通常只在第一次调用时调用私有构造函数。getInstance

Anew ExampleClass()将在每次调用时创建此类的一个新实例。

于 2013-06-14T09:00:24.147 回答
1

实现getInstance()方法的类通常是单例。在这种情况下,您基本上不应该使用new exampleclass(). (其实直接调用构造函数毕竟应该是禁止的。)

单例假设其类的一个实例在程序的生命周期内最多存在。如果有更多实例,它们可能会相互冲突,从而导致一些丑陋的问题。(例如,单例可以访问一些全局可用的函数或方法,或者打开与另一个模块或另一个网络位置的一些连接。如果两个实例在彼此不知道的情况下写入相同的变量,系统可能会进入它所做的状态不知道如何继续工作。)

于 2013-06-14T09:00:53.713 回答