【设计模式】单例模式
来源:互联网 发布:洗菜盆 知乎 编辑:程序博客网 时间:2024/05/29 13:33
定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的惟一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
代码
class Singleton{ private static Singleton instance; private Singleton() //构造方法让其private,这就堵死了外界利用new创建此类实例的可能 { } public static Singleton GetInstance() //此方法是获得本类实例的唯一全局访问点 { if (instance==null) //若实例不存在,则new一个新示例,否则返回已有的实例 { instance = new Singleton(); } return instance; }}
优点:单例模式因为Singleton类封装它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。简单地说就是对唯一实例的受控访问。
注意:多线程程序中,多个线程同时访问Singleton类,调用GetInstance()方法,会有可能创建多个实例。我们可以通过给进程加锁来处理。
阅读全文
0 0
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- Android adb push与 adb install简介
- 远程桌面连接出现内部错误
- 来自一个java小白的自白
- 在大学老师布置的一些题目,欢迎各位大佬指正(2)
- 多线程的2种实现方式
- 【设计模式】单例模式
- 二叉树
- HDU 6069 Counting Divisors (素因子求贡献)
- Struts2 官方教程:动作编程(Coding actions)
- 算法训练 K好数
- 组件化
- JS事件知识点总结
- 朴素贝叶斯算法详解
- 项目二——停车场