我有一个基本问题:
当我开发PHP时,我经常想知道,何时使用exampleclass :: getInstance()是合理的 何时使用新的exampleclass()
我应该何时使用哪一个,它之间的最大区别是什么? 我只是想从这个问题中找出“最佳实践”。
感谢您的帮助!
答案 0 :(得分:1)
通常,getInstance()
用于Singleton pattern,即需要始终使用相同的对象实例。在这种情况下,getInstance
仅在第一次调用时调用通常的私有构造函数。
new ExampleClass()
将在每次调用时创建此类的新实例。
答案 1 :(得分:1)
实现getInstance()
方法的类通常是singleton。在这种情况下,您基本上不应该使用new exampleclass()
。 (实际上,毕竟应该禁止直接调用构造函数。)
单例假定在程序的生命周期中最多存在一个类的一个实例。如果有更多的实例,它们可能会相互冲突,这会导致一些丑陋的问题。 (例如,单例可以访问一些全局可用的函数或方法,或打开一些连接到另一个模块或另一个网络位置。如果两个实例写入相同的变量而不知道彼此,系统可能会进入一个状态不知道如何继续工作。)