**
什么是单例模式(Singleton)?
**
单例模式:是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。
单例模式的四种实现方式
饿汉模式
/*
饿汉模式
*/
class Singleton {
private static Singleton o1= new Singleton();//定义时创建实例
public Singleton(){
}
public static Singleton getSingleton(){
return o1;
}
}
懒汉模式
/*
懒汉模式
*/
class Singleton {
private static volatile Singleton o2 = null;
public Singleton(){
}
public static Singleton getOnly(){
if( o2 == null){
synchronized (Singleton.class){
if(o2 == null)
o2 = new Singleton();
}
}
return o2;
}
}
登记模式(最常用)
class Singleton{
private Singleton(){
}
public static final Singleton getonly(){
return only.init;
}
private static class only{
private static final Singleton init = new Singleton();
}
}
枚举模式
enum Singleton{
init;
Singleton(){
System.out.println("构造函数执行");
}
public String getName(){
return "Singleton";
}
public static void main(String[] args){
Singleton onlyfour = Singleton.init;
System.out.println(Singleton.init.getName());
}
}