Singleton-在简单的基于PHP的CMS中使用它们


Singletons - using them in simple PHP based CMS

我读过很多关于单身人士的文章,大多数人都认为他们是不好的做法,为了避免他们,尽一切可能。大多数人这样说是因为很难调试使用它们的应用程序。

现在,创建一个简单的CMS,我尝试了几种方法,在我看来它们是最好的选择。

  1. 配置数据

该文件是在应用程序启动时加载的,我看不出为什么在整个应用程序中调用配置数据时不使用singleton模式?

  1. 请求数据

请求数据应该存储来自php服务器变量(POST、GET、COOKIE)的所有信息,以便在整个应用程序中使用singleton读取和写入(例如COOKIE)数据。

  1. 响应缓冲区

我想使用响应类(作为singleton),它将保存由我的模板呈现的所有数据。因此,应用程序可以加载所有视图,逐个呈现它们,并将响应的数据存储在响应类中,最后输出存储在响应中的整个文档。

所有示例的问题:A) 这真的是不好的做法吗?为什么?我看不出这里有什么邪恶。B) 有其他更好的方法吗?

谢谢!

这真的是不好的做法吗?为什么,因为我在这里看不到邪恶?

设计模式是建议,而不是标准。你可以使用它们,讨厌它们,称它们为"反模式",做任何你想做的事,但这只是你的意见。四人帮和任何一个博主都会像你一样表达他们的观点,你猜怎么着?这其实并不重要。

与其问自己是否有人认为这是一种糟糕的做法,不如问问自己:"我认为这是糟糕的做法吗?"。如果答案是否定的,那就去做吧。

我建议你在做出这个决定之前,先阅读双方(支持单身和反对单身),并对此发表自己的看法。但最终没有正确的答案,这只是决定的问题。

有其他(更好的)方法吗?

一般来说,在可能的情况下,我倾向于使用依赖注入而不是Singleton。但如果我没有办法使用DI,而辛格尔顿是我的一个选择,那么我肯定会选择它。我的建议是学习最重要的模式,并在特定的背景下使用对你有意义的东西。