什么时候使用getInstance / new class()是否合理? (PHP)

时间:2013-06-14 08:56:55

标签: php class instance

我有一个基本问题:

当我开发PHP时,我经常想知道,何时使用exampleclass :: getInstance()是合理的 何时使用新的exampleclass()

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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