在PHP中可以公平地说,一个实用程序类可以生成良好的Singleton类吗?

时间:2016-10-21 05:30:49

标签: php oop singleton

我无法决定何时创建Singleton类 我有一个数据库。

我想创建一个负责创建图像链接的类。 我给它URL,图像,标题,alt-tags,大小等... 它返回图像链接。

为此创建一个类是否有意义?如果是这样,这会是Singleton类候选人的一个例子吗?

1 个答案:

答案 0 :(得分:1)

好的,我会在人们突破干草叉之前完成它。

一般而言,从软件设计的角度来看,Singleton很少是正确的选择。然而,有几次确实需要一个。这是我使用Singleton的标准:

  • 多次实例化该类会对应用程序造成伤害。这方面的一个示例可能是需要维护与远程资源的持久连接的类。因此,如果您创建一个新类的实例,您可能会产生大量可能有害的连接。在这种情况下,我能够实现对功能的无锁访问。因此,这是少数情况下单身人士是最佳选择之一。
  • 您有一些想要封装在类中的共享状态。但是,这里的Singleton唯一合适的情况是这个共享状态是readonly。例如,通常通过单身人士来共享配置数据。

这些只是我需要使用Singleton的情况。如果你养成了过度使用它们的习惯,那么把自己编码到角落里真的很容易。

对于上面的例子,它不是一个很好的例子。您可以轻松拥有一个公开帮助方法的HtmlUtil类。当您需要访问该功能时,您可以实例化该类,然后将其丢弃。