在PHP中,公平地说,一个实用程序类是很好的单例类


In PHP would it be fair to say that a Utility classes makes good Singleton Class?

我有麻烦决定何时创建单例类我有一个数据库。

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

为这个创建一个类有意义吗?如果是这样,它会是Singleton类的候选示例吗?

好的,我会在大家动手之前把它弄进去的。

一般来说,从软件设计的角度来看,Singleton很少是正确的选择。然而,有几次确实需要一个。以下是我使用Singleton的标准:
    多次实例化类对应用程序是有害的。这方面的一个例子可能是需要维护到远程资源的持久连接的类。因此,如果你创建一个类的新实例,你可能会产生大量的连接,这可能是有害的。在这种情况下,我能够实现对功能的无锁访问。所以这是Singleton是最佳选择的少数情况之一。
  • 你有一些共享状态,你想封装在一个类。然而,对于Singleton来说,唯一合适的情况是这个共享状态是只读的。例如,通常通过singleton来共享配置数据。

这些只是我需要使用Singleton的情况。如果你养成了过度使用代码的习惯,你很容易把自己逼入绝境。

对于上面的例子来说,它并不是一个很好的例子。您也可以很容易地使用一个htmltil类来公开helper方法。当你需要访问这个功能时,你可以实例化这个类,使用它,然后扔掉它。