在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。
单例模式的要点:
1,私有的构造方法
2,指向自己实例的私有静态引用
3,以自己实例为返回值的静态的公有的方法
饿汉式单例
public class Singleton {
//指向自己实例的私有静态引用
private static Singleton singleton = new Singleton();
//私有的构造方法
private Singleton(){}
//以自己实例为返回值的静态的公有的方法
public static Singleton getInstance(){
return singleton;
}
}
懒汉式单例
public class Singleton {
//指向自己实例的私有静态引用
private static Singleton singleton;
//私有的构造方法
private Singleton(){}
//以自己实例为返回值的静态的公有的方法
public static synchronized Singleton getInstance(){
if(singleton==null){
singleton = new Singleton();
}
return singleton;
}
}
单例模式的优点:
1,在内存中只有一个对象,节省内存空间。
2,避免频繁的创建销毁对象,可以提高性能。
3,避免对共享资源的多重占用。
4,可以全局访问。