php - 在 PHP 中使用单例

标签 php oop class singleton

我想在一个类的多个方法中使用我创建的数据库单例。在每个方法中单独实例化 Singleton 更合适,还是通过 __constructor() 实例化它并从每个方法中的变量访问它更合适?

谢谢。

最佳答案

考虑到它是一个单例,结果将是相同的:您的 DB 对象将只有一个实例,并且它始终是相同的。

因此,这两种解决方案都有效,并且产生相同的结果;至少,如果每次创建您的类的实例时都使用您的数据库类——当然,性能差异可能可以忽略不计。


不过,采用在构造函数中获取单例实例并在其他方法中使用类变量的解决方案有一个优点:您的方法将不依赖于此单例,而仅依赖于类变量...

... 这意味着 Dependency Injection会容易得多(你只需要修改你的__construct方法,而不是类的每个方法)如果你想有一天使用它——例如, 以“模拟”您的数据库类,以进行自动化测试。

有关更多信息,您可以查看此博客文章:What is Dependency Injection?

关于php - 在 PHP 中使用单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829405/

相关文章:

php - 如何在 PHP 中将 XML 转换为数组?

php - 在插件中使用 WP_List_Table

objective-c - 用作全局变量的 AppDelegate 变量不起作用

java - 何时使用组合,何时使用继承

c++ - 如何在 C++11 中插入 std::map ?

C++ 类数组初始化

php - 为什么非法常量名称在使用 define() 时不会抛出错误?

javascript - 无法上传canvas.toDataURL图像: Synchronous XMLHttpRequest on the main thread is deprecated

javascript - 我尝试通过数据库验证数据以使用 Bootstrap 模式和 ajax 与 PHP 登录,但它不起作用

java - 游戏中的多人游戏。如何明智地设计它?