【发布时间】:2011-03-08 15:41:49
【问题描述】:
使用 PHP 数据库类作为singleton 有什么缺点?
【问题讨论】:
使用 PHP 数据库类作为singleton 有什么缺点?
【问题讨论】:
缺点与任何使用单例模式的类相同:
【讨论】:
如果您的 DB 类被构建为仅连接到单个数据库,那么当您的脚本需要连接到 2 个两个独立的数据库时,您将遇到问题。但是,您可以构建单例类来接受多个服务器配置,然后在单例中管理它们。
否则,将数据库类设计为单例是一种很有意义的做法,因为您可以严格控制脚本在任何给定时间建立的连接数。
【讨论】:
您不能使用两个数据库连接。你会想要这个,因为:
【讨论】:
这使得针对它运行单元测试变得困难,并且也使得不可能有多个数据库连接。众所周知,全局变量有很多缺点,单例也不例外,只是它们是一个更“友好”的全局变量。
我找到了一个很好的 article 和一个旧的 SO question。
【讨论】:
getInstance() Singleton。也许发帖人正在寻找数据库连接池之类的东西?