Friday, February 6, 2015

Singleton class -- Java

//http://www.javaworld.com/article/2073352/core-java/simply-singleton.html

public class ClassicSingleton {
    private static ClassicSingleton instance = null;
    protected ClassicSingleton() {
        // Exists only to defeat instantiation.
    }
    public static ClassicSingleton getInstance() {
        if(instance == null) {
            instance = new ClassicSingleton();
        }
        return instance;
    }
}

//synchronize on new;
public static Singleton getInstance() {
    if(singleton == null) {
        synchronized(Singleton.class) {
            singleton = new Singleton();
        }
    }
    return singleton;
}

//double check lock
public static Singleton getInstance() {
    if(singleton == null) {
        synchronized(Singleton.class) {
            if(singleton == null) {
                singleton = new Singleton();
            }
        }
    }
    return singleton;
}

//enum
//http://837062099.iteye.com/blog/1454934
enum Singleton implements Serializable {

    INSTANCE;

    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
        public String toString() {
            return "[" + name + "]";
        }
}

No comments:

Post a Comment