当前位置: 首页 > news >正文

单例模式(Singleton)

单例模式(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://blog.csdn.net/boyhailong/article/details/6645681

相关文章:

  • 桌面3D----埃舍尔多面体
  • hadoop的使用
  • apache所有模块详解
  • 【HeadFirst 设计模式学习笔记】5 单例模式
  • BlackHole开发日记-2012-12-16
  • flex 监听浏览器关闭或刷新
  • linux setenv 用法
  • linux的ip配置
  • mysql的简单查询
  • python异常
  • windows安装 lord of pomelo
  • Linux 上DenyHosts阻止SSH暴力攻击
  • Python中执行系统命令常见的几种方法
  • Monkey Test 命令使用
  • raid+lvm+quota
  • .pyc 想到的一些问题
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Docker入门(二) - Dockerfile
  • eclipse(luna)创建web工程
  • express + mock 让前后台并行开发
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • JS函数式编程 数组部分风格 ES6版
  • Laravel 菜鸟晋级之路
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Spring框架之我见(三)——IOC、AOP
  • 番外篇1:在Windows环境下安装JDK
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 使用common-codec进行md5加密
  • 用Canvas画一棵二叉树
  • 在weex里面使用chart图表
  • 转载:[译] 内容加速黑科技趣谈
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • 浅谈sql中的in与not in,exists与not exists的区别
  • #pragma multi_compile #pragma shader_feature
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (13)Hive调优——动态分区导致的小文件问题
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (七)理解angular中的module和injector,即依赖注入
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)详解PHP处理密码的几种方式
  • .form文件_一篇文章学会文件上传
  • .NET MVC 验证码
  • .NET 使用 XPath 来读写 XML 文件
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @EventListener注解使用说明
  • [ Linux ] Linux信号概述 信号的产生
  • []我的函数库
  • [Android]使用Git将项目提交到GitHub
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法