单例模式,全局保证指定对象只有一个实例。单例模式应该具备避免外部调用多次实例化的特性,并且要在并发环境下数据准确防止”幻读“。
单例模式实现有很多种,下面是实现之一:
/*
* Singleton.java 1.0 2014/07/01
*
* 声明:欢迎转载,请注明出处。
*
*/
package com.array7.singleton;
/**
* 单例模式实现
* @author array7
* @version 1.0
* @since 1.6
*/
public class Singleton {
/**
* 双重加锁,保证并发环境下正确性。(性能优于synchronized)
*/
private volatile static Singleton singleton = null;
/**
* 私有构造函数,防止外部篡改数据
*/
private Singleton() {
System.out.println("#Singleton#数据初始信息#");
}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
return singleton;
}
/**
* singleMethod
*/
public void singleMethod() {
System.out.println("#Singleton#singleMethod run...");
}
}
调用片段:
Singleton singleton = Singleton.getInstance();
singleton.singleMethod();