单例设计模式
来源:互联网 发布:java stringbuffer案例 编辑:程序博客网 时间:2024/05/08 23:26
设计一个类,只能实现该类的一个实例!
1 使用C++实现一个懒加载的单例
class Singleton{public: static Singleton GetInstance(){ if(instance==NULL) instance=new Singleton(); return instance; }private: Singleton(){}; //默认构造函数 static Singleton *instance; }
2 使用java实现一个懒加载的单例
class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance==NULL) instance =new Singleton(); return instance; }}
3 使用java实现一个饿汉式加载
class Singleton{ private Singleton instance=new Singleton(); private Singleton(){} public static Singleton getInstance(){ return instance; }}
总结:
(1)懒汉式加载只能在单线程的时候工作,当多个线程运行到判断instance是否为空时,会创建多个实例,此时不满足单例模式。
(2)可以加上一个同步锁,在判断instance是否为空之前,加锁。
0 0
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 快速排序(QuickSort)原理及Java 实现
- 优秀软件诞生的12个必备技术构成
- hibernate反向工程
- MVP 你应该了解的程序设计模式(一)
- 国内版魅族pro5刷ubuntu教程
- 单例设计模式
- xml解析项目中的xml文件,路径如何写?
- awk grep sed正则的对比分析 和 leetcode 193. Valid Phone Numbers awk 正则匹配
- VS Code 开发调试 TypeScript
- CodeForces-688C.NP-Hard Problem
- TF-IDF与余弦相似性的应用(一):自动提取关键词
- 审视一下我们的时间资源
- 【数据结构】二叉树四种遍历的非递归算法
- android自定义布局——城市选择界面