单例模式
来源:互联网 发布:大麻在淘宝黑话 编辑:程序博客网 时间:2024/06/01 12:31
定义:
保证一个类,只有一个实例存在,同时提供可以对该类进行访问的全局方法。
作用:
一般用于:
1.全局变量来共享资源
2.初始化全局socket等资源,这些资源往往只需要初始化一次
3.在大规模系统中,为了节省对象创建的时间,用此模式来减少对象的创建时间等。
实现方法:
1.构造函数私有化
2.提供一个全局的访问方法
3.在类中定义一个静态指针,指向本类的变量的静态变量指针。
//饿汉式单例 优点:没有加锁,执行效率会提高,但是浪费内存,加载时就创建实例。
保证一个类,只有一个实例存在,同时提供可以对该类进行访问的全局方法。
作用:
一般用于:
1.全局变量来共享资源
2.初始化全局socket等资源,这些资源往往只需要初始化一次
3.在大规模系统中,为了节省对象创建的时间,用此模式来减少对象的创建时间等。
实现方法:
1.构造函数私有化
2.提供一个全局的访问方法
3.在类中定义一个静态指针,指向本类的变量的静态变量指针。
//懒汉式 延时创建 效率更高,但需要考虑多线程初始化问题
class Single{ private static Single s = null; private Single(){} public static Single getInstance() { if(s==null)//这儿使用double-check是为了提升效率,同时防止多次创建内存,如果多个线程调用这个函数,则可能每个线程都进入这个判断里面。 { lock(); if(s==null)//这儿使用临界区是为了保证单例,防止多次创建, 这次的check是为了判断如果内存已经创建,则直接退出临界区 {m_singer = new Single(); } unLock(); } return s; }}
//饿汉式单例 优点:没有加锁,执行效率会提高,但是浪费内存,加载时就创建实例。
public class Singleton { private static final Singleton SINGLETON = new Singleton();//在定义的时候就先申请内存 private Singleton() {} public static synchronized Singleton getInstance() { return SINGLETON;}}
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别
- caffe python常用语句
- 八大排序算法
- Android之Speex在Android上的实现
- android shape的使用
- 单例模式
- Java开发对泛型的认识和理解
- GridView
- u3d联机斗地主(2):玩家匹配逻辑
- 查找 -数据结构
- Android之从零开始JNI研发
- Android开发——错误集锦
- top 命令 详解 和 sar -P ALL 查看cpu信息命令
- 创建JavaEE项目