Java设计模式之单例模式
Posted ontoweb-zp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java设计模式之单例模式相关的知识,希望对你有一定的参考价值。
Java设计模式之单例模式
最近由于想了解下底层的源码,所以看了些设计模式,后续看了几种写几种
单例模式英文原文:
- Ensure a class has only one instance,and provide a global point of access to it
- 即:在整个应用程序中,确保一个类只有一个实例,并向整个系统中提供这个实例
在Java中通常有两个表现形式
- 饿汉式单例:类在加载时就被实例化
- 懒汉式单例:第一次加载时才被加载实例化
1、饿汉式单例
static Singleton m_instance = new Singleton () | |
源代码:
public class Singleton{
private Singleton() {}
private static final Singleton1 single = new Singleton();
//静态工厂方法
public static Singleton getInstance() {
return single;
}
}
//成员变量是私有的,而且不能被外部访问
2、懒汉式单例
static Singleton m_instance = null | |
源代码:
java public class Singleton { private Singleton() {} private static Singleton single=null; public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } } //双重校验锁
- 第一种虽然是比较耗费资源,但是反映速度是比较好的
- 第二种虽然比较爽,但是比较消耗运行时的性能,但是影响很小
- 最终说来各有千秋,第一种比较适合用户资源配置,第二种比较适合于业务逻辑上的单例模式
借助于:电子工业出版社《设计原则》感谢!
以上是关于Java设计模式之单例模式的主要内容,如果未能解决你的问题,请参考以下文章