这篇文章主要介绍“在什么情况下可以使用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模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。