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