博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例模式(Singleton)
阅读量:6231 次
发布时间:2019-06-21

本文共 724 字,大约阅读时间需要 2 分钟。

单例模式(Singleton

 

单例模式(Singleton

意图:保证一个类只有一个实例,并提供一个访问它的全局访问点。

应用Session或者控件的唯一示例等。

模式结构

心得

单例模式应该是设计模式中最简单的结构了,它的目的很简单,就是保证自身的实例只有一份。实现这种目的的方式有很多,在Java中使用懒汉方法、饿汉方法、内部私有类、单元素枚举、函数静态变量等实现。如果用C++实现单例模式,函数静态变量的方式可能整体的质量更好。

举例

使用C++实现单例模式的代码如下:

class Singleton
{
protected:
//
禁用构造、拷贝、复制
    Singleton(){}
    Singleton(
const Singleton&){}
    Singleton&
operator=(
const Singleton&){}
public:
//
返回单例引用
    
static Singleton& getInstance()
    {
        
static Singleton instance;
        
return instance;
    }
    
void operation()
    {
        cout<<
"
单例
"<<endl;
    }
};

这样就能保证系统安全的拥有该类的唯一实例了。

Singleton*ps=&Singleton::getInstance();
Singleton&s=Singleton::getInstance();
Singleton::getInstance().operation();
ps->operation();
s.operation();

经测试,证明函数静态变量的方式能更好地展示单例模式的特点。

参考文章

转载地址:http://pgmna.baihongyu.com/

你可能感兴趣的文章
linux内核剖析-IBM
查看>>
关于Snmp的Trap代码开发之坑
查看>>
TCP 函数
查看>>
CentOS添加新硬盘到新的分区(xfs/ext4) 或者添加新分区
查看>>
20个Linux服务器安全强化建议(二)
查看>>
php-fpm的启动、配置及常见错误
查看>>
在 Linux 上管理加密密钥的最佳体验
查看>>
值得学习的C语言开源项目
查看>>
SYSTEMTAP -ORACLE
查看>>
[唐诗]183清平调词三首-李白
查看>>
深入敌后,揭开骇客真面目
查看>>
使用 Drag and Drop 给Web应用提升交互体验
查看>>
Flutter 三探
查看>>
一道java面试题分析及思考
查看>>
全栈 - 12 数据库 用Python操作MySQL
查看>>
假如有一天,人工智能用于相亲
查看>>
0227 - 简单了解了 ETH 挖矿
查看>>
技术问答集锦(14)ThreadPoolExecutor
查看>>
macOS Charles 4.x版本的安装及使用(含破解激活)
查看>>
InnoDB透明页压缩与稀疏文件
查看>>