首页 > 代码库 > singleton(单件)-对象创建型模式
singleton(单件)-对象创建型模式
1.意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2.动机
对一些类来说,只有一个实例是很重要的。让类自身负责保存它唯一的实例,这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。
3.适用性
- 当类只能有一个实例而且客户可以从一个周所周知的访问点访问它时。
- 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
4.结构
5.代码实例
静态成员实例的懒汉模式
注意此实例的构造函数为私有的以防止使用时实例化此类。此实例加了临界区(也可加锁)以保证单例的线程安全,频繁加锁可能会有性能问题(处理大量数据时)。
内部静态变量型饿汉模式
此内部静态变量只会初始化一次,因此每次获取实例时,获取的为同一个实例。
饿汉模式
静态成员初始化在进入main函数之前已经完成,此种实现没有争夺锁的性能问题。
Test.cpp
6.测试结果
7.效果
- 对唯一实例的受控访问
- 缩小名空间
- 允许对操作和表示的精化
- 允许可变数目的实例
- 比类操作更灵活
singleton(单件)-对象创建型模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。