设计模式--单例模式
来源:互联网 发布:怎么样开淘宝充值店 编辑:程序博客网 时间:2024/06/13 10:27
单例模式的作用:保证一个类只能产生一个实例,减少内存开销,屏蔽对象创建的复杂度。
单例模式编码的核心:
*构造方法私有化,避免直接创建对象
*单例类中包含一个静态实例
*包含一个静态方法返回,切返回值为单例类的实例(类的静态实例)
单例的几种实现及优缺点说明:
1.饿汉式
/*单例模式:饿汉式
* */
public class SingleInstance { private static final SingleInstance instance = new SingleInstance(); private SingleInstance(){ } public static SingleInstance getInstance(){ return instance; }}
优点:写法简单,不存在多线程同步问题。
缺点:单例随着类的加载而初始化,但可能出现单例产生之后,一直未被使用却一直占用内存,直到程序结束的情况。
2.懒汉式
public class SingleInstance{ private static SingleInstance mInstance; private SingleInstance(){ } synchronized public static SingleInstance getInstance(){ if(mInstance == null){ mInstance = new SingleInstance(); } return mInstance; }}
优点:只在需要的时候产生单例模式,一些场景下节约内存
缺点:对类的静态方法用同步synchronized,同步方法调用时效率低。
3.懒汉式优化版
public class SingleInstance{ private static SingleInstance mInstance; private SingleInstance(){ } synchronized public static SingleInstance getInstance(){ if(mInstance == null){ synchronized (SingleInstance.class) { if(mInstance == null){ mInstance = new SingleInstance(); } } } return mInstance;}
优点:同步方法改为同步代码块,同步方法调用时提高效率。
4.最佳实现方法
public class SingleInstance{ private SingleInstance(){ } public static SingleInstance getInstance(){ return SingleInstanceClass.instance; } private static class SingleInstanceClass{ private static SingleInstance instance = new SingleInstance(); } }
优点:内存占用低,线程同步效率高,线程安全(原因未查明)。
阅读全文
0 0
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- 给php代码添加规范的注释phpDocumentor
- RYU实战,REST API流表控制(2)
- a标签鼠标悬停效果
- 主题六 函数(C语言核心)----33.初步认识函数
- android native service
- 设计模式--单例模式
- 题目二 吝啬的国度
- SRE Google 运维解密--管理
- C++学习笔记之作用域为类的常量和作用域内的枚举
- SpringBoot开始微服务架构
- Android 测试类的使用
- dubbo 视频
- C语言结构体声明的妙用,隐藏结构体内部信息
- Java 位运算(移位、位与、或、异或、非)