千家信息网

在什么情况下可以使用Singleton模式

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"在什么情况下可以使用Singleton模式"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"在什么情况下可以使用Singleton模式"文章能帮
千家信息网最后更新 2025年12月02日在什么情况下可以使用Singleton模式

这篇文章主要介绍"在什么情况下可以使用Singleton模式"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"在什么情况下可以使用Singleton模式"文章能帮助大家解决问题。

适用性

在下面的情况下可以使用Singleton模式
• 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

这句话的翻译有一点点问题,还是看英文原文:

there must be exactly one instance of a class, and it must be accessible
to clients from a well-known access point.

作者认为应该这样翻译:当类只能有一个实例而且要求这个实例可以通过一个清晰简明的访问点访问时。

• 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

英文原文

when the sole instance should be extensible by subclassing, and clients
should be able to use an extended instance without modifying their code.

作者的译法:当这个唯一的实例需要通过子类扩展,而且要求客户不需要修改代码就可以使用这个扩展的的实例时。

结构

估计这是《设计模式》一书中最简单的类图了。但即便如此,这个图仍然可以简化:真正必须的只有2个静态成员。

参与者

• Singleton

- 定义一个Instance操作,允许客户访问它的唯一实例。 Instance是一个类操作(即Smalltalk中的一个类方法和C++中的一个静态成员函数)。

类操作这个词时相对于实例操作而言的,C++中就是静态成员函数。

- 可能负责创建它自己的唯一实例。

也可能时使用实现定义好的(例如全局变量)实例。

协作

• 客户只能通过Singleton的Instance操作访问一个Singleton的实例。

关于"在什么情况下可以使用Singleton模式"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0