单例对于微博网站来说是一个好的设计模式吗?

2023-11-30

我过去在项目中没有使用过任何 OO,因为我让它更简单(实际上使用古老的 mysql_query 调用和我自己的过滤),所以我想开始一个新项目,学习在我的 OO 中使用设计模式。

我想建立一个微博网站来娱乐一下,然后发现单例设计模式类看起来很完整,并且可以与PDO我看不出它有什么问题(除了无法访问两个数据库,我不确定这个项目是否需要)。

对于像这样的项目,或者简单的 CMS 软件,单例会是一个好主意吗? “大佬”会使用什么样的设计模式/数据库类类型来完成这些事情,如果以后要升级(并发连接/性能),这会不会限制太多?

我还阅读了有关工厂单例的信息,以便稍后处理额外的连接,因为更改其中的代码更简单。这会解决任何负面问题并使其成为更合适的设计模式吗?


Singleton 的目的是将对象实例限制为一个并提供全局访问。
两者都是你不想要或不需要的东西。

在 PHP 中将实例限制为一个实例是毫无意义的,因为这一限制仅适用于current要求。如果两个请求同时到达您的微博网站,则每个请求仍将有一个实例。如果您想确保只有一个实例,则只需不要实例化第二个实例即可。

全局访问也不是您想要的,因为它破坏了封装。如果您需要对象内的某个实例,请将其传递给 via依赖注入。这是干净且可维护的。它的另一个好处是允许您轻松地与其他实现交换依赖关系,例如模拟课为您单元测试.

Even 埃里希·伽马Singleton 模式的发明者之一现在对这种模式提出了质疑:

“我赞成放弃 Singleton。它的使用几乎总是一种设计味道”

你最好避免使用单身人士。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单例对于微博网站来说是一个好的设计模式吗? 的相关文章