The Singleton Pattern : ensures a class has only one instance , and provides a global point of access it.
sample code :
public class Singleton {
private static Singleton uniqueInstance;
private Singleton() {
}
public Singleton getInstance() {
if(uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
Deal with multi thread :
public class Singleton {
private static Singleton uniqueInstance;
private Singleton() {
}
public synchronized Singleton getInstance() {
if(uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
Double checked Singlton method :
package com.oreilly.designpattern.singleton;
public class DoubleCheckSingleton {
private volatile static DoubleCheckSingleton uniqueInstance;
private DoubleCheckSingleton() {
}
public DoubleCheckSingleton getInstance() {
if (uniqueInstance == null) {
synchronized (DoubleCheckSingleton.class) {
if (uniqueInstance == null) {
uniqueInstance = new DoubleCheckSingleton();
}
}
}
return uniqueInstance;
}
}
没有评论:
发表评论