大化设计模式-单例模式
来源:互联网 发布:js获取今天年月日 编辑:程序博客网 时间:2024/05/16 18:53
- 原理:保证一个类只有一个实例对象,提供一个对外的实例创建方法。
- 好处:
- 数据共享,多个线程可以共用一个实例,共同享用这个实例的资源属性(如数据库连接器)
- 线程安全,通过线程加锁,可以达到并发访问的目的
- 节约资源,防止创建过多不必要的对象
- 结构图
- 分类
1.懒汉式:实例化调用时才实例化,否则就不实例化
//懒汉式 class Singleton { private static Singleton instance; private Singleton() { } public static Singleton GetInstance() { if (NULL == instance) { instance = new Singleton(); } return instance; } };
2.多线程单例:多线程下,加锁
//多线程情况下: class Singleton { private static Singleton instance; //加一个锁 private static readonly object sync = new object(); private Singleton() { } public static Singleton GetInstance() { //先判断是否存在,再加锁! if (NULL == instance) { lock(sync) { if (NULL == instance){ instance = new Singleton(); } } } return instance; } };
3.饿汉式:通过静态修饰,使得在加载时就直接实例化,提前做准备。
//饿汉式 public sealed class Singleton { // 通过static final修饰,进行初始化加载,同时无法更改 private static final Singleton instance = new Singleton(); private Singleton() { } public static Singleton GetInstance(){ return instance; } };
阅读全文
0 0
- 大化设计模式-单例模式
- 设计模式三大基础模式之工厂模式,单例模式,注册树模式
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- TeamViewer不小心注册成商业版试用期到期怎么办
- 使用 DialogFragment 和 BottomSheet 实现底部弹出框
- Spring 报 NoSuchBeanDefinitionException
- 技术文章 | 深入剖析:关于cache buffers chains的经典案例处理详解
- 解决 CPU topology doesn't match maximum vcpu count
- 大化设计模式-单例模式
- n皇后,排列树
- Android录音与播放录音实现
- 黑客术语基础知识
- ASP.NET身份验证方式
- Windows下使用linux命令
- HTML5移动端通过touch事件判断手势方向及页面到达底部
- 安卓开发获取总方法数
- ubuntu apt-get update 失败解决方法