The book "Design Pattern" is described in the singleton mode:
Guarantees that a class has only one instance and provides a global access point to access it.
This model is relatively simple, here is an example:
public class Singleton {
private static Singleton instance;
private Singleton(){
}
public static Singleton getInstance(){
if(instance==null)
instance=new Singleton();
return instance;
}
}
This program is not a problem running in a single thread, but it can not run in a multi-threaded environment, if you want to run in a multi-threaded environment, you must modify the following:
public class Singleton {
private static class Instance{
static final Singleton instance=new Singleton();
}
private Singleton(){
}
public static Singleton getInstance(){
return Instance.instance;
}
}
This can be done because the static internal class instance will only be loaded once. The single State design mode running in multithreading is also called double-checked looking mode.