使用单例模式通常会产生代码异味。
但是,似乎在Laravel之类的框架中使用“单件”是许多问题的流行解决方案。
还值得注意的是,在以下意义上,Laravel中的单身人士与单身人士类并不是一回事:
我是否理解正确,在Laravel中所谓的单例实际上并不是单例,而是受单例模式启发的实现,因此,它不像真正的单例那样糟糕,因为它被摆脱了一些不利因素(难以测试,全球状况...)?
该问题与有关PHP中设计模式的问题大致相关,但对于我来说,创建一个单独的问题似乎很合适。
是的,它仍然很糟糕。它仍然是一种反模式。
事实上,您看到许多人都在诉诸这一事实,只是表明任何给定系统中的缺陷。它适用于应用程序,框架和库。
说“我们的单身人士是不同的”是错误的。而且,如果您正在编写适当的单元测试,则将隔离测试代码,而不必初始化框架的各个部分。
PS:
您似乎对“代码气味”有错误的看法。代码气味是当您具有名为的变量$a1
时$bzzzz
,代码气味是当您的函数具有8个参数时。Anit模式不是代码气味。这是体系结构中的错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句