定义:
单例模式:保证一个类只有一个实例,并且提供一个访问它的全局访问点。(《大话设计模式定义》);
单例模式分为两种:
1>饿汉式单例类:自己被加载时就将自己实例化。
例子:
private SingleExample() {
}
private static SingleExample singleExample=new SingleExample();
@Override
protected SingleExample getInstances() {
return singleExample;
}2>懒汉式单例类:在第一次被引用时,才将自己实例化。
例子:
private SingleExample() {
}
private static SingleExample singleExample = null;
protected static SingleExample getInstances() {
if (singleExample == null) {
synchronized (SingleExample.class) {
if (singleExample == null) {
singleExample = new SingleExample();
}
}
}
return singleExample;
}加同步块synchronized 是为了确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码区块,则它将一直处于等待状态,知道该对象被释放。
设计模式--单例模式(学习笔记),布布扣,bubuko.com
原文地址:http://blog.csdn.net/zouchengxufei/article/details/27486139