PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Singleton PHP – 数据库处理程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近一直在阅读关于单身人士模式的内容.在阅读其技术方面时,它似乎非常适合管理数据库处理程序等.但在阅读更广泛的资源之后,似乎开发者社区真的不喜欢这种模式.

我正在努力找到一个更好的解决方案来解决这个问题 – 即一次只能初始化一个处理程序 – 那么为什么模式如此糟糕?是否过度使用或是否只是根本上有缺陷?

PHP是我正在使用的语言.

@H_618_8@ Singletons are glorified global variables.设计模式是为全球变量难以或不可能的语言或被认为是不良实践的语言创建的. (事实上​​,大多数常见的设计模式都是针对限制性语言而设计的.其中很多都是不必要的.)

PHP全局变量. PHP全局变量通常是一种不好的做法,但如果您需要使用它们,它们确实存在.

但是,有几个原因你需要在PHP中使用Singleton.

调用geTinstance(返回Singleton的单个实例的方法的规范名称)可能是我在脚本中的任何一点进行时,单例很有用.直到那时,该对象不需要存在.如果对象是全局变量,则它必须已经存在,或者尝试引用该对象的代码首先需要实例化它.事实上,在任何可以使用的地方,都需要正确实例化.通过在geTinstance中集中创建单个对象,您可以避免每次需要引用对象时都创建复制粘贴样板.

数据库对象通常在请求生命周期的早期创建,因此将浪费Singleton-ness的特定优势.

Singleton还有其他替代品可以通过其他方式完成工作.一个例子是dependency injection,这是一个奇特的术语,用于在构造时将新对象所依赖的外部对象(例如数据库句柄)传递给对象.然而,这可能是复杂或烦人的.做得对可能涉及每次注入大量相同的对象.

一个替代方案是Registry pattern,它实际上一个容器,用于本来可以是全局的东西.如果您不喜欢全局变量,但不介意它们被有效地命名空间,那么这将是您想要的解决方案.

最后,选择一种方法来实现它,并在整个代码库中坚持使用这种方式.就个人而言,我是数据库对象的全球粉丝.

大佬总结

以上是大佬教程为你收集整理的Singleton PHP – 数据库处理程序全部内容,希望文章能够帮你解决Singleton PHP – 数据库处理程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。